當你有大量的實現同一介面的類的時候,在合適的時候例項化合適的類,如果把這些 new 分散到專案的各個角落,不僅會使業務邏輯變的混亂並且使得專案難以維護。這時候如果引進工廠模式的概念,就能很好的處理這個問題。我們還可以通過應用程式配置或者提供引數的形式讓工廠類為我們返回合適的的例項。
工廠類,它把例項化類的過程放到各工廠類裡頭,專門用來建立其他類的物件。工廠模式往往配合介面一起使用,這樣應用程式就不必要知道這些被例項化的類的具體細節,只要知道工廠返回的是支援某個介面的類可以很方便的使用了。下面簡單舉例說明下工廠類的使用。
簡單工廠的使用:
class
redis******
}class
memcache******
}class
objectfactory
return
$obj::
classinfo()
;}}objectfactory:
:getclassinfo
('redis******'
);
工廠方法模式:
inte***ce
showclassinfo
class
redis******
implements
showclassinfo
}class
memcache******
implements
showclassinfo
}class
objectfactory
return
$obj::
classinfo()
;}}objectfactory:
:getclassinfo
('redis******'
);
抽象抽工程模式:
<?php
abstract
class
showclassinfo
class
guaiwu1
extends
showclassinfo
}class
guaiwu2
extends
showclassinfo
}class
objectfactory
return
$obj::
classinfo()
;}}objectfactory:
:getclassinfo
('guaiwu2'
);
工廠模式(簡單工廠 工廠方法 抽象工廠)
二 工廠方法 三 抽象工廠 以下內容通過生產小公尺和華為手機 電腦 的例子實現 uml圖 phone介面 abstractproduct public inte ce phone miphone product1 public class miphone implements phone overr...
工廠模式 簡單工廠和工廠方法
核心概念 實現了建立者和呼叫者分離 詳細分類 簡單 靜態工廠模式 工廠方法模式 抽象工廠模式 1.靜態工廠模式 public class ca ctory else if car.equals 特斯拉 else 方法2 每增加乙個類都要修改 不利於復用和維護 2.工廠方法模式 每個類分別實現ca c...
簡單工廠模式 工廠方法模式
在實際應用中,我們可以考慮使用封裝 繼承 多型把程式的耦合度降低。1.簡單工廠模式 例子 寫乙個計算器模擬程式 思路 將業務進行封裝,並且進行松耦合,即不同的運算類之間互相不影響,可考慮通過繼承乙個類或者實現乙個介面 類operation,定義計算的統一介面 package smplefactory...