laravel中用到了很多设计模式,实现这些设计模式时也用到了不少php新特性。学习这些设计模式,可以帮助我们:
- 学习php新特性,知道如何用新特性,写出清新脱俗的代码
- 学习真正有用的,实例的设计模式,同时思考这样做有什么意义。学会之后可以把设计模式的思想应用在我们的程序中。
(laravel中的代码用到很多新特性,例如php中的闭包和匿名函数,理解这些才能更好的理解代码)
1.装饰者模式
装饰者模式是在开放——关闭原则下实现动态添加或减少功能的一种方式。
说明:装饰者模式就是不修改原类代码和继承的情况下动态扩展类的功能。传统的编程模式都是子类继承父类实现方法重载,使用装饰器模式,只需添加一个新的装饰器对象,更加灵活,避免类数量和层次过多
2.IOC服务容器
可以理解为工厂模式的升华版。
提供需要类的注册,同时绑定依赖关系的类,实现自动注册类
3.门面模式
Facades(读音:/fəˈsäd/ )为应用程序的服务容器中可用的类提供了一个「静态」接口。Laravel 自带了很多 facades ,几乎可以用来访问到 Laravel 中所有的服务。Laravel facades 实际上是服务容器中那些底层类的「静态代理」,相比于传统的静态方法, facades 在提供了简洁且丰富的语法同时,还带来了更好的可测试性和扩展性。