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

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

作者:站长图库 字体:[增加 减小] 来源:互联网

站长图库向大家介绍了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好友复制网址打印

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

相关文章

  • 解析ThinkPHP5之 _initialize() 初始化方法
  • Photoshop制作渐变色导航背景
  • 虚拟空间如何获取帝国CMS手机端路径
  • html中circle是什么意思
  • 你可能要纠正这5个PHP编码小陋习!
  • 分享Laravel整合Bootstrap4的完整方案
  • PHP中连接符大于号、等号大于号的意思
  • 【网络营销】网络商店的设计
  • Vue模仿ElementUI的form表单实例代码
  • Dedecms文章审核后给会员增加积分或者金币的办法

文章分类

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

最近更新的内容

    • JS中循环遍历数组的四种方式总结
    • 织梦后台非常卡,经常无反应怎么办
    • DEDECMS V5.7 伪静态设置
    • 分享一个WordPress面包屑导航代码
    • WordPress常见故障有哪些?怎么处理?
    • Photoshop快速制作漂亮的花朵浮雕字
    • Redis中热点Key是怎么产生的?如何解决?
    • 关于在页面SEO优化中H标签的正确使用方法
    • Thinkphp中import的用法是什么
    • Photoshop设计3D效果的月牙状LOGO

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

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