抽象工廠模式(abstract factory pattern)是圍繞乙個超級工廠建立其他工廠。該超級工廠又稱為其他工廠的工廠。這種型別的設計模式屬於建立型模式,它提供了一種建立物件的最佳方式。。主要解決 : 主要解決介面選擇的問題。每乙個模式都是針對一定問題的解決方案,工廠方法模式針對的是乙個產品等級結構;而抽象工廠模式針對的是多個產品等級結構。在抽象工廠模式中,介面是負責建立乙個相關物件的工廠,不需要顯式指定它們的類。每個生成的工廠都能按照工廠模式提供物件。
何時使用:系統的產品有多於乙個的產品族,而系統只消費其中某一族的產品。
如何解決:在乙個產品族裡面,定義多個產品。
優點:
缺點:
實現:
drinkssize 介面:
package com.designpattern.abstractfactorypattern;
/** * created by pc on 2016/8/14.
* writer : shunc
*/public
inte***ce
drinkssize
介面 drinkssize – 實現:
package com.designpattern.abstractfactorypattern;
/** * created by pc on 2016/8/14.
* writer : shunc
*/public
class
middle
implements
drinkssize
}
介面 drinkssize – 實現:
package com.designpattern.abstractfactorypattern;
/** * created by pc on 2016/8/14.
* writer : shunc
*/public
class
large
implements
drinkssize
}
介面 drinkssize – 實現:
package com.designpattern.abstractfactorypattern;
/** * created by pc on 2016/8/14.
* writer : shunc
*/public
class
small
implements
drinkssize
}
介面 drinkstype:
package com.designpattern.abstractfactorypattern;
/** * created by pc on 2016/8/14.
* writer : shunc
*/public
inte***ce
drinkstype
介面 drinkstype – 實現:
package com.designpattern.abstractfactorypattern;
/** * created by pc on 2016/8/14.
* writer : shunc
*/public
class
coffee
implements
drinkstype
}
介面 drinkstype – 實現:
package com.designpattern.abstractfactorypattern;
/** * created by pc on 2016/8/14.
* writer : shunc
*/public
class
teaimplements
drinkstype
}
介面 drinkstype – 實現:
package com.designpattern.abstractfactorypattern;
/** * created by pc on 2016/8/14.
* writer : shunc
*/public
class
cola
implements
drinkstype
}
抽象類工廠 abstractdrinksfactory :
package com.designpattern.abstractfactorypattern;
/** * created by pc on 2016/8/14.
* writer : shunc
*/public
abstract
class
abstractdrinksfactory
drinkssize工廠 – sizefactory:
package com.designpattern.abstractfactorypattern;
/** * created by pc on 2016/8/14.
* writer : shunc
*/public
class
sizefactory
extends
abstractdrinksfactory
@override
drinkssize getdrinkssize(string size)
}
drinkstype工廠 – typefactory:
package com.designpattern.abstractfactorypattern;
/** * created by pc on 2016/8/14.
* writer : shunc
*/public class
typefactory
extends
abstractdrinksfactory
@override
drinkssize getdrinkssize(string size)
}
工廠 – factoryproducer:
package com.designpattern.abstractfactorypattern;
/** * created by pc on 2016/8/14.
* writer : shunc
*/public
class
factoryproducer
}
實現 dome :
package com.designpattern.abstractfactorypattern;
/** * created by pc on 2016/8/14.
* writer : shunc
*/public
class
abstractfactorypatterndome
}
抽象工廠模式總結 java版
目錄 抽象工廠模式比工廠方法模式好在 抽象工廠模式簡介 抽象工廠模式抽象 抽象工廠模式具體 抽象工廠模式優點 抽象工廠模式缺點 抽象工廠模式適用場景 工廠方法模式通過引入工廠等級結構,解決了簡單工廠模式中工廠類職責太重的問題,但由於工廠方法模式中的每個工廠只生產一類產品,可能會導致系統中存在大量的工...
java抽象工廠模式
抽象工廠模式 英語 abstract factory pattern 是一種軟體開發 設計模式 抽象工廠模式提供了一種方式,可以將一組具有同一主題的單獨的 工廠封裝起來。在正常使用中,客戶端程式需要建立抽象工廠的具體實現,然後使用抽象工廠作為 介面來建立這一主題的具體物件。客戶端程式不需要知道 或關...
java 抽象工廠模式
依然是簡單工廠模式中的印表機案例,不過這裡把工廠設計成介面,讓不同的工廠生產不同的印表機,再抽象出乙個生產工廠的工廠 印表機介面 package com.meteor.design pattern.abstract factory created by meteor on 2016 3 27.pub...