PHP工廠方法模式的好處是:核心類別只需要關注工廠類別的接口,而具體的產品實例交給具體的工廠子類別去創建。在該模式下,透過定義一個抽象的核心工廠類,並定義創建產品的接口,使創建具體產品實例的工作延遲到其工廠子類去完成。
本文操作環境:Windows10系統、PHP7.1版、Dell G3電腦。
此模式中,透過定義一個抽象的核心工廠類,並定義創建產品對象的接口,創建具體產品實例的工作延遲到其工廠子類別去完成。
這樣做的好處是核心類別只關注工廠類別的介面定義,而具體的產品實例交給具體的工廠子類別去創建。當系統需要新增一個產品,無需修改現有系統程式碼,只需要增加一個特定產品類別和其對應的工廠子類,是系統的擴展性變得很好,符合物件導向程式設計的開閉原則。
<?php interface Animal{ public function run(); public function say(); } class Cat implements Animal { public function run(){ echo "I ran slowly <br>"; } public function say(){ echo "I am Cat class <br>"; } } class Dog implements Animal { public function run(){ echo "I'm running fast <br>"; } public function say(){ echo "I am Dog class <br>"; } } abstract class Factory{ abstract static function createAnimal(); } class CatFactory extends Factory { public static function createAnimal() { return new Cat(); } } class DogFactory extends Factory { public static function createAnimal() { return new Dog(); } } $cat = CatFactory::createAnimal(); $cat->say(); $cat->run(); $dog = DogFactory::createAnimal(); $dog->say(); $dog->run();
工廠方法模式是簡單工廠模式的進一步抽象和推廣。由於使用了物件導向的多態性,工廠方法模式保持了簡單工廠模式的優點,並且克服了它的缺點。在工廠方法模式中,核心的工廠類別不再負責所有產品的創建,而是將具體創建工作交給子類別去做。
這個核心類別僅僅負責給出具體工廠必須實現的接口,而不負責產品類別被實例化這種細節,這使得工廠方法模式可以允許系統在不修改工廠角色的情況下引進新產品。
推薦學習:《PHP影片教學》
以上是php工廠方法模式的好處是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!