設計模式(Design Patterns)筆記之一:Abstract Factory (轉)
前言:呵呵,拿了第一頁出來,還沒反應過來,就被兄弟們慘罵一頓,前面實在象目錄,^_^, 不過大家別急嘛,好歹給我點休息時間。
不多說,下面開始記筆記!^_^
設計(Design Patterns)筆記之一:Abstract Factory
定義:提供一個建立一系列相關或相互依賴的介面,而無需指定它們具體的類。提供建立物件的接。
工廠模式是我們最常用的模式,是用來建立物件的,它就相當於建立物件的new。
例如我們有一個類Example,我們要建立Example的物件:
Example example=new Example();
或
Example example=new Example(引數);
如果建立Example時做的事情不是如賦值這樣簡單的事,可能是很長一段程式碼,如果也寫入構造中,那明顯的就違背了物件導向的原則.
我們需要將建立例項的責任與使用例項的責任分開, 使得
Example example=new Example(引數);
就是簡單的責任:使用Example這個例項;而建立Example的任務就交給了Factory工廠模式.
按照傳統方法,我們如果需要繼承Example類,生成MyExample,就需要定義Example為Interface,然後,不斷繼承這個Interface,生成許多子類,造成以後程式碼維護是如此的困難。
如果,我們開始就採用了工廠模式,也許就沒有這麼多的煩惱了。
我們生成一個Factory,它專門負責生成Example的例項。
public class Factory {
public static Example getIntance() {
......
if(flag == 1)
return new MyExample();
if(flag == 2)
return new YourExample();
}
}
然後,那麼在你的中,如果要例項化MyExample時.就使用
Example example=Factory.getIntance();//還有其它標誌,不具體寫了。
具體使用:
工廠模式有以下三種:
1. 簡單工廠(Simple Factory)
2. 工廠方法(Factory Method);
3. 抽象工廠(Abstract Factory)。
我們先看一段程式碼
public abstract class Factory{
public abstract MyExample creator();
public abstract YourExample creator();
}
public class FirstFactory extends Factory{
public MyExample creator(){
......
}
public YourExample creator(){
......
}
}
public class SecondFactory extends Factory{
public MyExample creator(){
......
}
public YourExample creator(){
......
}
}
這裡,我們需要建立多個物件,複雜性提高,於是需要採用Abstract Factory來封裝共同屬性和方法,而將不同的屬性和方法透過子類來實現。
簡而言之,工廠模式的目的就是用來實現例項分發。
工廠模式中幾種型別的一些差別:
簡單工廠模式是根據引數來決定產生例項;
簡單工廠模式, 核心是一個實類;
工廠方法模式的核心是一個抽象工廠類;
工廠方法模式可以允許很多實的工廠類從抽象工廠類繼承下來, 從而可以在實際上成為多個簡單工廠模式的綜合;
工廠方法一般只建立一個例項,而Abstract Factory建立多個例項。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752043/viewspace-991594/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 設計模式(Design Patterns)筆記 (轉)設計模式筆記
- 設計模式(Design Patterns)工廠方法模式(Factory Method)設計模式
- Delphi設計模式-Abstract Factory (轉)設計模式
- 設計模式(Design Patterns)筆記之二:Adapter (轉)設計模式筆記APT
- 設計模式(Design Patterns)筆記之三:Bridge (轉)設計模式筆記
- 設計模式、用Delphi描述-->Abstract Factory模式 (轉)設計模式
- 設計模式討論之abstract factory篇 (轉)設計模式
- 設計模式--抽象工廠模式(Abstract Factory Pattern)設計模式抽象
- 設計模式-抽象工廠模式(Abstract Factory Pattern)設計模式抽象
- 設計模式討論之abstract factory篇設計模式
- 設計模式實戰 – 抽象工廠模式(Abstract Factory Pattern)設計模式抽象
- 設計模式實戰 - 抽象工廠模式(Abstract Factory Pattern)設計模式抽象
- JAVA設計模式之 抽象工廠模式【Abstract Factory Pattern】Java設計模式抽象
- 【圖解設計模式系列】The Abstract Factory Pattern: 抽象工廠模式圖解設計模式抽象
- 設計模式的征途—4.抽象工廠(Abstract Factory)模式設計模式抽象
- 設計模式筆記:簡單工廠模式(Simple Factory)設計模式筆記
- 為什麼要學習設計模式(Design Patterns) - 軟體設計大師之路 (轉)設計模式
- Design Patterns 之工廠模式模式
- 設計模式、用Delphi描述-->Factory Method模式 (轉)設計模式
- 我所理解的設計模式(C++實現)——抽象工廠模式(Abstract Factory Pattern)設計模式C++抽象
- Abstract Factory(抽象工廠)——物件建立型模式抽象物件模式
- 為什麼要學習設計模式(Design Patterns) - 怎樣成為軟體設計大師 (轉)設計模式
- Design Patterns in Android:裝飾模式Android模式
- Abstract Factory + Template = BuilderUI
- 《設計模式——可複用物件導向軟體的基礎》學習筆記(1.4)The catalog of design patterns...設計模式物件筆記
- 《設計模式——可複用物件導向軟體的基礎》學習筆記(1.2)Design patterns in Smalltalk MVC...設計模式物件筆記MVC
- 奇幻RPG(人物構建 與 Abstract Factory模式)模式
- 《設計模式——可複用物件導向軟體的基礎》學習筆記(1.3)Describing design patterns...設計模式物件筆記
- Design Patterns in Android:責任鏈模式Android模式
- design patterns - 從頭講解MVC模式MVC模式
- C++程式設計思想筆記之一 (轉)C++程式設計筆記
- 《遊戲設計模式》(Game Programming Patterns)遊戲設計設計模式GAM
- 《設計模式》 - 2. 工廠模式( Factory )設計模式
- 設計模式--工廠模式Factory(建立型)設計模式
- Java設計模式之工廠模式(Factory)Java設計模式
- Design Patterns: Solidify Your C# Application Architecture with Design Patterns中文版(中篇) (轉)SolidC#APP
- Design Patterns: Solidify Your C# Application Architecture with Design Patterns中文版(下篇) (轉)SolidC#APP
- 用Java實現的設計模式系列(1)-Factory (轉)Java設計模式