抽象工廠模式(java版)

2021-07-22 11:31:17 字數 3792 閱讀 8157

抽象工廠模式(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...