设计模式
软件设计模式(Design pattern),又称设计模式,是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性、程序的重用性。
24种设计模式及分类(总结及各模式是具体介绍可参阅这篇文章):
其中,软件设计原则的SOLID原则就是指【单一职责、开闭、里氏替换、接口隔离、依赖反转】五种原则的英文首字母,即:
Single Responsibility Principle:类职责应单一
Open/Closed Principle:类允许功能扩展、不允许修改
Liskov Substitution Principle:父类设计需要能多态,即应能被子类替换
Interface Segregation Principle:大功能拆到多个接口中,接口间功能高内聚低耦合
Dependency Inversion Principle:依赖于抽象而非具体实现进行编程
可见,这五个原则的逻辑是:单类设计 -> 类扩展 -> 父子类关系 -> 不同父类的设计 -> 使用父子类的方式
对于有一定经验的Coder来说,肯定或多或少已经使用过了一些设计模式,只不过可能还不知道自己已经用了这些设计模式。
对笔者而言,实践中用的较多的有:单一职责、开闭原则、接口隔离原则、适配器模式、代理模式、抽象工厂模式、建造者模式、单例模式、职责链模式、迭代器模式、观察者(发布订阅)模式、策略模式(例如验证码类型)、装饰器模式(静态代理、动态代理使得不修改原有方法前提下使方法功能增强)等。