減輕的一個具體方面:
Factory Pattern. When to use factory methods?使用工廠獲取特定對象的優勢?
在我的團隊有一個關於工廠設計模式的討論。
在我們的項目,我們有一些工廠正在建造像這樣的:
class ProductFactory {
const PRODUCT_A = 'product_a';
const PRODUCT_B = 'product_b';
const PRODUCT_C = 'product_c';
private static $classMapping = array(self::PRODUCT_A => 'A',
self::PRODUCT_B => 'B',
self::PRODUCT_C => 'C');
public function create($productConstant) {
$className = self::$classMapping[$productConstant];
return new $className();
}
}
的討論是關於使用這個工廠。 如果我從來沒有動態地定義產品,並且始終定義我喜歡從中收回的產品,是否有任何需要使用此模式?
您可以稍後更改具體的產品,而不會更改太多的代碼。 – hakre
只是在一面注意:如果我沒有完全錯誤,你不會實例化ProductFactory。因此,它需要創建一個靜態方法('public static function create()')。 – ExternalUse
@ExternalUse:請不要暗示。謝謝!您稍後想要替換工廠(例如,用於測試系統),然後靜態殺死所有這些。毋容。如果你對自己的判斷是公平的,你就不會建議一個全球性的功能,會有嗎? – hakre