Abstract Factory ,抽象工廠
抽象工廠是一種創建型方法,所謂工廠,顧名思義就是一個車間,裏面生產各種各樣的組件,既然是抽象的,對應到代碼裏面,就是定義一些抽象的方法,然後在集體的工廠裏面實現。
用傳統的製造業來舉例比較恰當,比如汽車製造業,現在的汽車製造業都已經集團化了,每家汽車製造商都有好多工廠,每個工廠用來生產某幾個具體型號的轎車。站在集團的角度,每個工廠都生產引擎,輪胎,然後拼裝成整車。
從軟件的角度抽象,引擎、輪胎都有統一的父類 element, 而每個工廠也有着統一的父類 VehicleFactory.
類圖如下
來看具體的源代碼
1 Element.java
2 Engine.java
2.1 NormalEngine.java
2.2 RaceEngine.java
3 Wheel.java
3.1 NormalWheel.java
3.2 RaceWheel.java
4 Vehicle.java
4.1 NormalVehicle.java
4.2 RaceVehicle.java
5 VehicleFactory.java
5.1 NormalVehicleFactory.java
5.2 RaceVehicleFactory.java
6 測試程序