大话PHP设计模式

  1. PHP链式操作的实现:就是每个方法都是返回一个对象;

  2. 3种基本设计模式:

    1. 工厂模式(factory):工厂方法或者类生成对象(一般有一个基类专门实例化对象,为静态模式),程序中只需要调用基类的静态对象,而不是在程序中直接new一个对象(程序中每个方法都是创建不同的对象)

    2. 单例模式(instance):使某个类的对象仅允许创建一个;(程序中每个方法都是同一个对象)

    3. 注册模式:全局共享和交换对象;(程序中每个方法都是创建不同的对象)

  3. 适配器模式:

    1. 可以将截然不同的函数接口封装成统一的API:就是继承一个基类API文件,而方法都是与基类一样;

  4. 策略模式:(strategy)

    1. 将一组特定的行为和算法封装成类,以适应某些特定的上下文环境,这种模式就是策略模式;

    2. 解决在类中添加分支逻辑的代码;

  5. 数据对象映射模式:

    1. 是将对象和数据存储映射起来,对一个独享的操作会映射为对数据存储的操作;

    2. 例如:在代码中实现数据对象映射模式,我们将实现一个ORM类,将复杂的SQL语句映射成对象属性的操作;

    3. 例如:把user表的字段作为属性,并执行查询字段值并赋值,可以直接使用属性值,也可以设置属性的值,最最后对象回收时更新数据;

    4. 结合使用数据对象映射模式,工厂模式,注册模式;

  6. 观察者模式:(overver)

    1. 观察者模式(Observer),当一个对象状态发生改变时,依赖它的对象全部会收到通知,并自动更新;

    2. 场景:一个事件发生后,要执行一连串更新操作。传统的编程方式,就是在事件的代码之后直接加入处理逻辑。当更新的逻辑增多之后,代码会变得难以维护。这样方式是耦合的,侵入式的,增加新的逻辑需要修改事件主体的代码

    3. 观察者模式实现了低耦合,非侵入式的通知与更新机制;

  7. 原型模式:

    1. 与工厂模式作用类似,都是用来创建对象

    2. 与工厂模式的实现不同,原型模式是先创建好一个原型对象,然后通过clone原型对象来创建新的对象。这样就免去了类创建时重复的初始化操作;

    3. 原型模式适用于大对象的创建。创建一个大对象需要很大的开销,如果每次new就会消耗很大,原型模式仅需内存拷贝即可

  8. 装饰器模式:

    1. 装饰器模式(Decorator),可以动态地添加修改类的功能;

    2. 一个类提供了一项功能,如果要在修改并添加额外的功能,传统的编程模式,需要写一个子类集成它,并重新实现类的方法;

    3. 使用装饰器模式,仅需在运行时添加一个装饰器对象即可实现,可以实现最大的灵活性;

  9. 迭代器模式:

    1. 迭代器模式,在不需要了解内部实现的前提下,遍历一个聚合对象的内部元素;

    2. 相比于传统的编程模式,迭代器模式可以隐藏遍历元素的所需操作;

  10. 代理模式:

    1. 在客户端与实体之间建立一个代理对象(proxy),客户端对实体进行操作全部委派给代理对象,隐藏实体的具体实现细节;

    2. proxy还可以与业务代码分类,部署到另外的服务器。业务代码中通过RPC来委派任务;

来源:原创 发布时间:2021-08-22 21:41:05