PHP设计模式

一:工厂模式

    最常用的设计模式就是工厂模式。在这个模式下,需要一个用来创建你需要的对象的类。

二:单例模式

    构造函数__construct()被声明为 protected 是为了防止用new操作符在这个类之外创建新的实例。

    魔术方法__clone()被声明为 private 是为了防止用clone操作符克隆出新的实例.

    魔术方法__wakeup()被声明为 private 是为了防止通过全局函数unserialize()反序列化这个类的实例。

    新的实例是用过静态方法getInstance()使用后期静态绑定生成的。这允许我们对Singleton类进行继承,并且在取得SingletonChild的单例时不会出现问题。在大多数情况下,依赖注入可以(并且应该)代替单例类。

三:策略模式

    使用策略模式,你可以把不同的算法(业务)封装到不同的类中,使 client 类可以在不知道具体实现的情况下选择实例化其中一个算法。

    封装算法的接口:interface OutputInterface

    实现调用不同算法的类:Client ,client类有一个必须在运行时设置的私有属性,并且是“OutputInterface”类型的

    test.php:需要调用的文件

四:前端控制器模式

    前端控制器模式就是给你的 web 应用程序设置单一的入口(比如 index.php),用来集中处理所有请求的机制。 它的职责是载入所有依赖,处理请求,并发送响应给浏览器。前端控制器模式对整个架构是有益的,因为它鼓励模块化代码,并给了你一个单入口,可以写一些每个请求都需要跑的代码(比如输入数据的过滤)。

五:模板方法设计模式(数据库操作可应用此模式)

1. 保护抽象类中定义算法顺序的方法不被子类修改。

2. 分离可变及不可变部分,让子类自己决定可变部分的实现。

3. 让算法的具体实现对子类开放,对其他类关闭。

注意:架构模式

    MVC是大多数框架采用的架构模式,并不属于设计模式。

    M:模型用来作为数据访问层,并以应用中通用的格式返回数据。

    V:视图用来展示需要在响应中使用的模板(markup, xml 等等)。

    C:控制器处理请求,处理从模型层返回的数据,并载入视图,发送响应。

你可能感兴趣的:(PHP设计模式)