工廠抽象工廠模式
簡單工廠模式是屬於建立型模式,又叫做靜態工廠方法(static factory method)模式,但不屬於23種gof設計模式之一。簡單工廠模式是由乙個工廠物件決定建立出哪一種產品類的例項。簡單工廠模式是工廠模式家族中最簡單實用的模式,可以理解為是不同工廠模式的乙個特殊實現。
package factory;
public
inte***ce
product
package factory;
public
class
producta
implements
product
}package factory;
public
class
productb
implements
product
}
package factory;
//簡單工廠類
public
class
******factory
return product;
}}
package factory;
public
class
main
}
優點:簡單工廠模式能夠根據外界給定的資訊,決定究竟應該建立哪個具體類的物件。明確區分了各自的職責和權力,有利於整個軟體體系結構的優化。
缺點:很明顯工廠類集中了所有例項的建立邏輯,容易違反graspr的高內聚的責任分配原則。
工廠方法模式factory method,又稱多型性工廠模式。在工廠方法模式中,核心的工廠類不再負責所有的產品的建立,而是將具體建立的工作交給子類去做。該核心類成為乙個抽象工廠角色,僅負責給出具體工廠子類必須實現的介面,而不接觸哪乙個產品類應當被例項化這種細節。
package factory;
//工廠介面
public
inte***ce
factory
package factory;
public
class
factorya
implements
factory
}package factory;
public
class
factoryb
implements
factory
}
package factory;
public
class
main
}
優點:
缺點:需要creator和相應的子類作為factory method的載體,如果應用模型確實需要creator和子類存在,則很好;否則的話,需要增加乙個類層次。
抽象工廠模式是所有形態的工廠模式中最為抽象和最具一般性的一種形態。抽象工廠模式是指當有多個抽象角色時,使用的一種工廠模式。抽象工廠模式可以向客戶端提供乙個介面,使客戶端在不必指定產品的具體的情況下,建立多個產品族中的產品物件。根據黎克特制替換原則,任何接受父型別的地方,都應當能夠接受子型別。因此,實際上系統所需要的,僅僅是型別與這些抽象產品角色相同的一些例項,而不是這些抽象產品的例項。換言之,也就是這些抽象產品的具體子類的例項。工廠類負責建立抽象產品的具體子類的例項。
比如在上面product類的基礎上增加gift類
//增加gift介面
package factory;
public
inte***ce
gift
//實現gift具體類a
package factory;
public
class
gifta
implements
gift
}//實現gift具體類b
package factory;
public
class
giftb
implements
gift
}
package factory;
//宣告product類工廠和gift類工廠的工同工廠介面
public
inte***ce
abstractfactory
將多個產品類組合起來
package factory;
public
class
abstractfactorya
implements
abstractfactory
public gift creategift()
}package factory;
public
class
abstractfactoryb
implements
abstractfactory
public gift creategift()
}
package factory;
public
class
main
}
優點 設計模式 工廠模式 抽象工廠模式
建立物件時不會對客戶暴露建立邏輯,並且通過使用乙個共同的介面來指向建立的物件。sept1 建立乙個公共介面,將要對外開放的方法在這裡定義。sept2 建立實現介面的類,用即實現對外開放的類的方法 sept3 建立工廠,提供乙個get方法,這個方法提供返回實現類的物件 建立選擇 sept4 使用,建立...
設計模式 工廠設計模式
用於建立物件的介面,交給子類去實現 我們舉乙個生產nokia的例子 public abstract class nokiaphone先試定義了乙個抽象類,抽象出方法poweronphone 模擬手機開機的動作 public class nokia5200 extends nokiaphone pub...
設計模式 工廠設計模式
工廠模式分為工廠方法模式和抽象工廠模式 工廠方法模式分為 普通工廠模式,就是建立乙個工廠類,對實現了同一介面的一些類進行例項的建立。多個工廠方法模式,是對普通工廠方法模式的改進,在普通工廠方法模式中,如果傳遞的字串出錯,則不能正確建立物件,而多個工廠方法模式是提供多個工廠方法,分別建立物件。靜態工廠...