工廠設計模式
阿新 • • 發佈:2020-08-06
1.工廠方法模式的主要優點有:
- 使用者只需要知道具體工廠的名稱就可得到所要的產品,無須知道產品的具體建立過程;
- 在系統增加新的產品時只需要新增具體產品類和對應的具體工廠類,無須對原工廠進行任何修改,滿足開閉原則;
2.其缺點是
每增加一個產品就要增加一個具體產品類和一個對應的具體工廠類,這增加了系統的複雜度。
3.模式的結構與實現
工廠方法模式由抽象工廠、具體工廠、抽象產品和具體產品等4個要素構成。本節來分析其基本結構和實現方法。
1. 模式的結構
工廠方法模式的主要角色如下。
- 抽象工廠(Abstract Factory):提供了建立產品的介面,呼叫者通過它訪問具體工廠的工廠方法 newProduct() 來建立產品。
- 具體工廠(ConcreteFactory):主要是實現抽象工廠中的抽象方法,完成具體產品的建立。
- 抽象產品(Product):定義了產品的規範,描述了產品的主要特性和功能。
- 具體產品(ConcreteProduct):實現了抽象產品角色所定義的介面,由具體工廠來建立,它同具體工廠之間一一對應。
4.圖形
5.程式
package com.jun.design.create; /** * 工廠 */ public class FactoryMethod { public static void main(String[] args) { Car a; AbstractFactory af = new carFactory(); a=af.newProduct(); a.build(); } } // 抽象工廠 interface AbstractFactory { public Car newProduct(); } class carFactory implements AbstractFactory { @Override public Car newProduct() { System.out.println("具體工廠1生成-->具體產品1..."); return new bmwCar(); } } // 具體實現 interface Car { public void build(); } class bmwCar implements Car{ @Override public void build() { System.out.println("寶馬..."); } }
6.簡單工廠