1. 程式人生 > >設計模式之工廠方法

設計模式之工廠方法

一、什麼是工廠方法

定義一個工廠的抽象,提供一個契約與規定,將具體建立產品類的任務交給該抽象的實現,一個具體工廠的實現負責一個產品類的建立。

優點:

符合開閉原則,當有新的產品類加入時,只需要擴充套件工廠的抽象,不必要更改原來已有的工廠類的實現,這一點比簡單工廠要好一些。

缺點:

當有很多產品類時,就需要引入很多工廠類的實現,可能會導致類的數量過多,使得系統複雜性變高。

二、具體的場景分析

與簡單工廠的場景一樣,獲取不同的學習視訊,在這裡採用工廠方法實現:

其類圖如下:

在這種場景下,不同的課程(python、java等)屬於同一級別的產品,採用工廠方法很方便擴充套件,當有新的學習視訊類加入時,學習視訊從Video抽象進行擴充套件,對應的工廠方法從VideoFactory抽象進行擴充套件。符合開閉原則。