PHP 设计模式

  1. 策略模式
    ​处理程序算法与其他算法之间的互换
    实现方式:声明一个抽象的拥有一个算法方法的基类来实现,通过继承基类的具体类来实现​

    这里写图片描述

  2. 单例模式
    解决的是如何在整个项目中创建唯一对象实例的问题​
    1)一个保存类的实例的静态成员变量,静态私有变量,eg: $_instance
    2)​构造函数–private,防止外部new类,消耗内存,单例类只能被自身实例化
    3)一个访问该实例的公共静态方法,eg: getInstance()​
    4)创建__clone()方法防止对象被克隆​
    5)instanceof操作符检查三件事情:
    —-实例是否某个特定的类型,
    —-实例是否从某个特定的类型继承,
    —-实例或者他的任何祖先类是否实现了特定的接口。
    6)​使用单例模式生成一个对象,供其它众多对象使用,常用于数据库连接

    这里写图片描述

    这里写图片描述

  3. 工厂模式
    工厂模式解决的是如何不通过new建立实例对象的方法​
    1)​用于封装创建对象的过程,可根据不同的参数生成不同的类实例,减少代码的复制粘贴
    ​2)常用于返回类似接口的不同的类,常见用法就是创建多态的提供者
    ​3)有一个静态方法,一般命名为factory,可接受任意数量的参数,并且必须返回一个对象
    4)分类:
    简单工厂模式:静态工厂方法模式,定义一个用于创建对象的接口
    工厂方法模式:去掉了了静态属性,可被子类继承,可有工厂子类来分担
    抽象工厂模式:​仅处理抽象产品角色提供的接口

  4. 注册器(观察者)模式
    首先,单例模式创建唯一对象的过程本身还有一种判断,即判断对象是否存在。存在则返回对象,不存在则创建对象并返回。 每次创建实例对象都要存在这么一层判断。 工厂模式更多考虑的是扩展维护的问题。
    参考文档:http://weibo.com/p/230418661838ca0102vbhb
    ​IoC容器是把 次类 实例化对象 依次 注册到 类中一个静态数组;
    ———Di.php——-

class Di{
    protected static $objects;
    static function set($key, $object){
        self::$objects[$key] = $object;
    }

    static function get($key){
        return self::$objects[$key];
    }

    static function unset($key){
        unset(self::$objects[$key]);
    }
}
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值