1、工廠方法模式
創建型設計模式之一
UML類圖
2、抽象工廠模式
也是創建型設計模式之一。雖然抽象工廠方法模式的類繁多,但是,主要分為4類。
- AbstractFactory:抽象工廠角色,它聲明了一組用于創建一種產品的方法,每一個方法對應一種產品,如類圖中AbstractFactory中定義了兩個方法,分別創建產品A和產品B。
- ConcreteFactory:具體工廠角色,它實現了抽象工廠中定義的創建產品的方法,生成一組具體產品,這些產品構成了一個產品種類,如類圖中的ConcreteFactory1和ConcreteFactory2。
- AbstractProduct:抽象產品角色,它為每種產品聲明接口,比如類圖中的AbstractProductA和AbstractProductB。
- ConcreteProduct:具體產品角色,它定義具體工廠生產的具體產品對象,實現抽象產品接口中聲明的方法,如類圖中的ConcreteProductA1、ConcreteProductA2、ConcreteProductB1和ConcreteProductB2。
UML類圖
抽象工廠模式優點:
- 分離接口與實現,客戶端使用抽象工廠來創建需要的對象,而客戶端根本就不知道具體的實現是誰,客戶端知識面向產品的接口編程而已,使其從具體的產品實現中解耦,同時基于接口與實現的分離,使抽象工廠方法模式在切換產品類時更加靈活、容易。
抽象工廠模式缺點:
- 類文件的爆炸性增加。
- 不太容易擴展新的產品類,因為增加一個產品類就需要修改抽象工廠,那么所有的具體工廠類均會被修改。