抽象工廠模式是對工廠模式的"抽象",負責建立實現類的工廠
從底層向上,首先建立兩個不同功能的介面,所有具體的實現類都是實現這兩個介面:
inte***ce
shape
inte***ce
color
建立實現這些介面的具體實現類:
class
rectangle
implements
shape
}class
square
implements
shape
}class
circle
implements
shape
}class
redimplements
color
}class
green
implements
color
}class
blue
implements
color
}
建立獲取工廠的抽象類:
abstract
class
abstractfactory
基於不同工廠,具體實現抽象類:
class
shapefactory
extends
abstractfactory
if(shapetype.
equalsignorecase
("circle"))
else
if(shapetype.
equalsignorecase
("rectangle"))
else
if(shapetype.
equalsignorecase
("square"))
return null;
}@override
color getcolor
(string color)
}class
colo***ctory
extends
abstractfactory
@override
color getcolor
(string color)
if(color.
equalsignorecase
("red"))
else
if(color.
equalsignorecase
("green"))
else
if(color.
equalsignorecase
("blue"))
return null;
}}
建立抽象工廠:
class
factoryproducer
else
if(choice.
equalsignorecase
("color"))
return null;
}}
測試:
public
class
abstractfactorypatterndemo
}
結果:
inside circle::draw() method.inside rectangle::draw() method.
inside square::draw() method.
inside red::fill() method.
inside green::fill() method.
inside blue::fill() method.
設計模式 6 建立型模式總結
建立物件最直接的方法就是利用c 提供的建構函式,這種方法的缺點是讓 繫結了具體的型別 一旦該具體型別需要被替換為新的型別,那麼程式邏輯就不得不修改 更糟糕的是,可能需要到處修改這樣的 open close原則的乙個要旨是要避免這種修改!如前所述,所有的建立型設計模式解決這個問題的方案都是 基於乙個穩...
設計模式學習總結 6 橋模式
今天學習了橋模式,但是,我發現它和裝飾模式有很像的地方。書上對橋模式的定義很容易的想到橋模式可能重點在於兩種不同維度的分離,而裝飾模式更多強調在原有基礎上擴充套件,即使很容易感覺到這一點,但是我還是覺得很不放心,畢竟再次之前都沒有接觸過類似的業務。關於橋模式定義是這樣的 意圖將抽象部分和它的實現部分...
面試題總結6 設計模式
六種常見的設計模式 1 工廠模式 2 單例模式 3 策略模式 4 觀察者模式 5 迭代器模式 6 模版方法模式。1.簡單工廠方法和工廠方法的區別 c 設計模式之1 工廠模式 設計模式 工廠和原型 清晰明了的對比 簡單工廠方法,使用乙個工廠類實現建立介面,不符合開放封閉原則,因為如果新增乙個產品品類,...