define an inte***ce for creating an object,but let subclasses decide which class to instantite.factory method lets a class defer instantation to subclass.
1.抽象產品類?
1
2
3
4
5
6
7
8
package
factorymethod;
public
abstract
class
product
public
abstract
void
method2();
2.具體的產品類?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
package
factorymethod;
public
class
concreteproduct1
extends
product
}
package
factorymethod;
public
class
concreteproduct2
extends
product
}
3.抽象工廠類?
1
2
3
4
5
package
factorymethod;
public
abstract
class
creator
4.具體工廠類?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
package
factorymethod;
public
class
concretecreator
extends
creator
catch
(exception e)
return
(t)product;
}
}
5.客戶端**?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
package
factorymethod;
public
class
client
}
工廠方法模式的優點
優點:1. 良好的封裝性,降低模組間的耦合;
2. 面向產品介面,遮蔽產品類。
3. 典型的解耦框架。高層模組只需要知道產品的抽象類。
4. 符合迪公尺特法則、依賴倒置原則、黎克特制替換原則。
工廠方法模式的特殊應用
描述:去掉了工廠方法模式中的工廠抽象類,同時把具體工廠方法中的方法設定為靜態。
優點:簡化結構、呼叫過程
缺點:不利於擴充套件、不符合開閉原則
描述:對普通工廠方法模式的改進,多個工廠方法模式是提供多個工廠方法,分別建立物件
優點:建立類的職責清晰,結構簡單
缺點:增加擴充套件難度(增加協調類,封裝子工廠類,對高層提供統一的訪問介面)
描述:採用工廠方法模式實現單例模式的功能
做法:私有單例類,不允許new出物件
在工廠類內,使用反射機制建立乙個物件
描述乙個物件被消費完畢後,不立刻釋放,工廠類保持其,等待再次使用。
做法:在工廠類中以集合的形式容納所有產生物件
每次請求建立時,如果集合中已有則直接返回;若沒有則建立,放入集合並返回
工廠方法模式 工廠方法模式
工廠方法模式是簡單工廠模式的公升級版,簡單工廠模式不符合設計模式的原則 即 單一職責,開閉原則 優點 職責明確,擴充套件方便 缺點 需要建立多個工廠 實現步驟 1.將工廠通用方法抽取介面 例如 ifactory 2.將產品抽取介面 例如 icar 3.實現各種產品 例如 baomacar,benti...
工廠方法模式 工廠方法模式 二
工廠方法模式是對簡單工廠的進一步抽象和封裝,需要新的類物件時不需要對既有工廠類進行修改,而是增加新的工廠類。工程類可以使用模版進一步封裝,由編譯器來生成 從而減少 編寫工作量。工廠方法的 c 實現01part產品抽象基類class animal virtual void show 0 02part產...
工廠方法模式(一) 簡單工廠方法模式
ps 第二篇學習部落格,堅持就是勝利。繼續設計模式的學習,記錄工廠模式,加深自己的理解。基本結構 abstractproduct 用來定義基本的商品的抽象 public abstract class abstractphoneproduct 用來實現抽象商品,生成各種商品 public class ...