下面是工廠方法的結構:
package test_1;
inte***ce
service
inte***ce
servicefactory
class implements1 implements
service
public void method2()
}class implements1factory implements
servicefactory
}class implements2 implements
service
public void method2()
}class implements2factory implements
servicefactory
}public
class
factories
public
static void main(string args)
}
下面是輸出結果:
implements1.method1
implements1.method2
implements2.method1
implements2.method2
根據不同介面可以提供不同的實現方法,而具體的實現方法也與工廠方法分離。不明白的朋友多敲敲**就能夠理解了我覺得。
通過匿名類實現的簡化工廠方法設計模式如下:
inte***ce
service
inte***ce
servicefactory
class implements1 implements
service
public void method2()
public
static servicefactory implements1factory = new servicefactory()
};}class implements2 implements
service
public void method2()
public
static servicefactory implements2factory = new servicefactory()
};}public
class
factories
public
static void main(string args)
}
通過匿名類使得**簡單優雅了許多,而且也不再需要具體的servicefactory類了。 Java設計模式 工廠方法
定義乙個用於建立物件的介面,factory method將乙個類的例項化延遲到了子類。工廠方法模式的功能 工廠方法的主要功能是讓父類在不知道具體實現的情況下,完成自身的功能呼叫,而具體的實現延遲到子類來實現。實現成抽象類 工廠方法的實現中,通常父類會是乙個抽象類,裡面包含建立所需物件的抽象方法,這些...
Java設計模式 工廠方法模式
定義乙個用於建立物件的介面,讓子類決定將哪乙個類例項化。factory method 使乙個類的例項化延遲到其子類。package car inte ce public inte ce icar inte ce package car imple import car inte ce.icar in...
Java設計模式 工廠方法模式
工廠方法模式應用背景 客戶類不關心使用哪個具體的類,只關心介面所提供的功能。建立過程比較複雜,例如需要初始化其他關聯的資源類。介面或者抽象類有許多實現類,客戶 需要編寫大量if else邏輯來決定執行時使用哪個具體的實現類。不希望給客戶程式暴露太多的類的內部結構,這樣做可以降低耦合度。優化效能,比如...