最近在总结设计模式相关的知识,简单的把复习笔记搞一下吧~
简单来说,设计模式就是一套方法,一套用来设计程序,让你的程序更高效,清晰,易读等一系列优点的方法吧。
设计模式之处,让我们先来了解设计原则。
SOLID,代表这些原则的目的是为了建立稳定,灵活,健壮的设计。
- 单一职责原则 Single Responsibility Principle
- 开闭原则 Open Closed Principle
- 迪米特法则 Law of Demeter
- 里式替换原则 Liskov Substitution Principle
- 接口隔离原则 Interface Segregation Principle
- 依赖倒置原则 Dependence Inversion Principle
- 组合/聚合复用原则 Composite/Aggregate Reuse Principle
简单说一下这几个原则:
单一职责是说,让一个类具有单一的职责,也就是就干一个事情,或者干一系列相关的事情。简单来说你家雇个保姆,你不能既让她洗衣做饭,又让她帮你敲代码加班吧~
开闭原则是指,我们设计的原则是对扩展开放,对修改关闭。举个例子,PHP源码那些支持的方法不能每次更新的更改写法吧,要不之前应用过的部分都需要更改也太麻烦了吧。
迪米特法则,讲的是对象之间应该尽量少的依赖,降低复杂度。
里式替换原则是说,子类可以扩展父类的功能,但不能改变父类原有的功能。这里的重点在于,不影响原功能,而不是重写。
接口隔离原则,是说接口应该尽量小,我们可以用多个职责单一的接口,去替代一个多个职责的接口。
依赖倒置那就更明确了,讲的是上层模块不依赖于底层模块,二者都依赖于抽象。用过Laravel的应该都知道,Laravel的服务容器就是依赖注入的经典例子。
组合/聚合复用原则是指可以在一个新的对象里面使用一些已有的对象。尽量使用合成/聚合的方式,而不是继承。
设计模式
- 创建型模式:抽象工厂模式,原型模式,单例模式,工厂方法,建造者模式
- 结构型模式:适配器模式,组合模式,装饰模式,门面模式,桥接模式,享元模式
- 行为型模式:模版方法模式,职责链模式,命令模式,策略模式,观察者模式,备忘录模式,中介者模式,解释器模式,状态模式,访问者模式,迭代器模式