• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

简单工厂模式及php实现

原作者: [db:作者] 来自: [db:来源] 收藏 邀请


简单工厂模式(Simple Factory Pattern):

  又称为静态工厂方法(Static Factory Method)模式,它属于类创建型模式。在简单工厂模式中,可以根据参数的不同返回不同类的实例。简单工厂模式专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类。

简单工厂模式包含如下角色:

  Factory:工厂角色,工厂角色负责实现创建所有实例的内部逻辑

  Product:抽象产品角色,抽象产品角色是所创建的所有对象的父类,负责描述所有实例所共有的公共接口

  ConcreteProduct:具体产品角色,具体产品角色是创建目标,所有创建的对象都充当这个角色的某个具体类的实例。

UML图:

  

abstract class Fruit{

}
class Apple extends Fruit{
  function __construct(){
    echo "Apple";
  }
}

class Banana extends Fruit{
  function __construct(){
    echo "Banana";
  }
}

class Factory{
  static function fruit($classname){
    if($classname == "Apple"){
      return new Apple();
    }else if($classname == "Banana"){
      return new Banana();
    }
    return null;
  }
}


/*
//可以与类自动加载函数相结合
class Factory{
  static function fruit($classname){
    return new $classname();
  }
}
*/

//测试 Factory::fruit("Apple"); Factory::fruit("Banana");

  简单工厂模式的缺点
  1、由于工厂类集中了所有产品创建逻辑,一旦不能正常工作,整个系统都要受到影响。
  2、使用简单工厂模式将会增加系统中类的个数,在一定程序上增加了系统的复杂度和理解难度。
  3、系统扩展困难,一旦添加新产品就不得不修改工厂逻辑,在产品类型较多时,有可能造成工厂逻辑过于复杂,不利于系统的扩展和维护。
  4、简单工厂模式由于使用了静态工厂方法,造成工厂角色无法形成基于继承的等级结构


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
php用PDO查询mysql数据库结果中文乱码发布时间:2022-07-10
下一篇:
phpoptions请求跨域发布时间:2022-07-10
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap