工廠方法模式所包含的成員:
(1)抽象產品(product):抽象類或者介面,用於定義具體產品必須實現的方法
(2)具體產品(concreteproduct):如果product是乙個抽象類,那麼具體產品是product的子類;如果product是乙個介面,那麼具體產品是實現該介面的類。
注:一般情況下,乙個抽象產品是乙個抽象類,而具體產品是派生出的眾多繼承該抽象產品類的不同子類
(3)構造者(creator):乙個介面或抽象類。構造者負責定義乙個被稱為工廠方法的抽象方法(該方法返回抽象產品的乙個物件引用——這一點也體現了構造者和抽象產品之間的關係:構造者依賴於抽象產品)
(4)具體構造者(concretecreator):如果構造者是抽象類,具體構造者類就是構造者類的眾多不同的子類;如果構造者是介面,具體構造者就是眾多實現該介面的不同子類。具體構造者重寫工廠方法,使該方法返回具體產品的例項。
工廠方法模式的示例**:
public
abstract
class
pencore
public
class
redpencore
extends
pencore
public
void
writeword(string neirong)
}public
class
blackpencore
extends
pencore
public
void
writeword(string neirong)
}public
abstract
class
pencorecreator
public
class
redcorecreator
extends
pencorecreator
}public
class
blackcorecreator
extends
pencorecreator
}public
class
ballpen
public
void
write(string s) //通過該方法呼叫具體產品的writeword方法
}public
class
test
}
關於工廠方法模式個人總結:
(1)一般情況下工廠方法模式中具體構造者與具體產品一一對應,乙個具體構造者生產乙個具體產品。
(2)工廠方法模式非常類似於現實生活中的生產模式:最上級下達乙個開始生產的命令,下級就開始按照自己的生產方法和目標生產不同的產品,供不同的使用者使用。
Java設計模式(一) 工廠模式
工廠模式,顧名思義就是像工廠一樣生產物件,我們知道一家生產筆的工廠,不僅僅只生產鉛筆,還有原子筆和鋼筆等型別。同理,我們採用工廠類來獲取各物件。以工廠生產筆為例,物件是筆,類penfactory是生產筆的工廠。建立所有筆的父類pen,有乙個通用的方法write 因為每一種筆寫的內容不容,方法的實現不...
java設計模式 工廠模式
工廠模式 存在的目的 定義乙個用於建立複雜類的物件的介面。使用工廠模式,降低了類與類之間的耦合關係。分為三種實現方式 類之間的繼承結構不同 簡單工廠模式 工廠方法模式 抽象工廠模式。主要涉及的三種類 呼叫工廠的類,工廠類,產品類。先看乙個不適用工廠模式的類組織 class bmw32 class b...
JAVA設計模式 工廠模式
一 簡單工廠。它的缺點很明顯,當需要再新增乙個whitehuman類時,需要在工廠類中修改,則 的耦合性很高。建立需要用工廠new的class public inte ce human public class blackhuman implements human public class yel...