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:控制器处理请求,处理从模型层返回的数据,并载入视图,发送响应。