工厂方法模式及php实现
生活随笔
收集整理的這篇文章主要介紹了
工厂方法模式及php实现
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
工廠方法模式:
工廠方法模式(Factory Method Pattern)又稱為工廠模式,也叫虛擬構(gòu)造器(Virtual Constructor)模式或者多態(tài)工廠(Polymorphic Factory)模式,它屬于類創(chuàng)建型模式。在工廠方法模式中,工廠父類負(fù)責(zé)定義創(chuàng)建產(chǎn)品對象的公共接口,而工廠子類則負(fù)責(zé)生成具體的產(chǎn)品對象,這樣做的目的是將產(chǎn)品類的實(shí)例化操作延遲到工廠子類中完成,即通過工廠子類來確定究竟應(yīng)該實(shí)例化哪一個(gè)具體產(chǎn)品類。
工廠方法模式包含如下角色:
- Product:抽象產(chǎn)品
- ConcreteProduct:具體產(chǎn)品
- Factory:抽象工廠
- ConcreteFactory:具體工廠
UML圖:
適用性:
當(dāng)一個(gè)類不知道它所必須創(chuàng)建的對象的類的時(shí)候。
當(dāng)一個(gè)類希望由它的子類來指定它所創(chuàng)建的對象的時(shí)候。
當(dāng)類將創(chuàng)建對象的職責(zé)委托給多個(gè)幫助子類中的某一個(gè),并且你希望將哪一個(gè)幫助子類是代理者這一信息局部化的時(shí)候。
abstract class Fruit{} class Apple extends Fruit{function __construct(){echo "Apple";} }class Banana extends Fruit{function __construct(){echo "Banana";} }interface Factory{createFruit(); }class AppleFactory implements Factory{function createFruit(){return new Apple();} } class BananaFactory implements Factory{function createFruit(){return new Banana();} }?
轉(zhuǎn)載于:https://www.cnblogs.com/yujon/p/5532808.html
總結(jié)
以上是生活随笔為你收集整理的工厂方法模式及php实现的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 微信公众平台开发教程新手解惑40则
- 下一篇: Apache2.4 与 PHP 5.5