• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • dedecms
  • ecshop
  • z-blog
  • UcHome
  • UCenter
  • drupal
  • WordPress
  • 帝国cms
  • phpcms
  • 动易cms
  • phpwind
  • discuz
  • 科汛cms
  • 风讯cms
  • 建站教程
  • 运营技巧
您的位置:首页 > CMS教程 >建站教程 > PHP工厂方法模式的好处是什么

PHP工厂方法模式的好处是什么

作者:站长图库 字体:[增加 减小] 来源:互联网 时间:2022-04-29

站长图库向大家介绍了PHP工厂方法模式等相关知识,希望对您有所帮助

PHP工厂方法模式的好处是:核心类只需要关注工厂类的接口,而具体的产品实例交给具体的工厂子类去创建。在该模式下,通过定义一个抽象的核心工厂类,并定义创建产品的接口,使创建具体产品实例的工作延迟到其工厂子类去完成。


PHP工厂方法模式的好处是什么


php工厂方法模式的好处是什么

此模式中,通过定义一个抽象的核心工厂类,并定义创建产品对象的接口,创建具体产品实例的工作延迟到其工厂子类去完成。

这样做的好处是核心类只关注工厂类的接口定义,而具体的产品实例交给具体的工厂子类去创建。当系统需要新增一个产品,无需修改现有系统代码,只需要添加一个具体产品类和其对应的工厂子类,是系统的扩展性变得很好,符合面向对象编程的开闭原则。

<?phpinterface 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();

工厂方法模式是简单工厂模式的进一步抽象和推广。由于使用了面向对象的多态性,工厂方法模式保持了简单工厂模式的优点,而且克服了它的缺点。在工厂方法模式中,核心的工厂类不再负责所有产品的创建,而是将具体创建工作交给子类去做。

这个核心类仅仅负责给出具体工厂必须实现的接口,而不负责产品类被实例化这种细节,这使得工厂方法模式可以允许系统在不修改工厂角色的情况下引进新产品。


分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

相关文章

  • 2022-04-29Photoshop制作颓废的彩色立体字
  • 2022-04-29PhotoShop制作window7移动导航网页界面设计教程
  • 2022-04-29JavaScript中字符串(string)如何转json
  • 2022-04-29uniapp实现微信小程序全局分享的示例代码
  • 2022-04-29thinkphp5视图文件提交form表单后台接收并打印
  • 2022-04-29浅析微信小程序和web之间的交互(代码分享)
  • 2022-04-29小程序request请求怎么解决session失败问题
  • 2022-04-29帝国CMS安装时You have an error in your SQL syntax报错
  • 2022-04-29div在屏幕中如何实现水平居中和垂直居中
  • 2022-04-29php构造方法和java构造方法有什么区别

文章分类

  • dedecms
  • ecshop
  • z-blog
  • UcHome
  • UCenter
  • drupal
  • WordPress
  • 帝国cms
  • phpcms
  • 动易cms
  • phpwind
  • discuz
  • 科汛cms
  • 风讯cms
  • 建站教程
  • 运营技巧

最近更新的内容

    • 帝国cms中常用标签(总结)
    • jQuery checkbox不可选怎么实现
    • 浅析vue中的生命周期钩子mounted
    • 织梦DedeCMS站点高级安全策略(Linux篇)
    • 一起来了解下Bootstrap中的tab选项卡
    • 帝国cms搜索结果显示数量设置教程
    • Mac搭建php的开发环境(图文详解)
    • 如何快速搭建uni-app项目?两种搭建方法分享
    • Laravel中Kafka的使用详解
    • MySQL8.0版本和PHP7不兼容问题?

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有