一、什么是设计模式?
设计模式是在开发过程经过反复尝试、修改并最终总结出来的一套适用于开发过程中的一般问题的解决方案。设计模式常常代表了最佳实践,即提供了软件开发过程中面临的一般问题的最佳解决方案。
二、设计模式的六大原则
1. 开闭原则(Open Close Principle)
对扩展开放,对修改关闭。在程序需要进行拓展的时候,不能去修改原有的代码,而是通过继承之类的方法来实现。
2. 里氏代换原则(Liskov Substitution Principle)
继承必须确保超类所拥有的性质在子类中仍然成立。
里氏代换原则是开闭原则的补充。实现开闭原则的关键步骤就是抽象化,而基类与子类的继承关系就是抽象化的具体实现,所以里氏代换原则是对实现抽象化的具体步骤的规范。
3. 依赖倒转原则(Dependence Inversion Principle)
这个原则是开闭原则的基础,具体内容:针对接口编程,依赖于抽象而不依赖于具体。
4. 接口隔离原则(Interface Segregation Principle)
使用多个隔离的接口,比使用单个接口要好。即尽量将接口的职责变得单一。
5. 迪米特法则(最少知道原则)(Demeter Principle)
一个实体应当尽量少地与其他实体之间发生相互作用,使得系统功能模块相互独立。
6. 合成复用原则(Composite Reuse Principle)
尽量使用合成/聚合的方式,然后才考虑使用继承。
三、设计模式的三大类
1. 创建型模式
这种设计模式提供了一种在创建对象的同时隐藏创建逻辑的方式,而不是使用 new 运算符直接实例化对象。这使得程序在判断针对某个给定实例需要创建哪些对象时更加灵活。
2. 结构性模式
这些设计模式关注类和对象的组合。继承的概念用来组合接口和定义组合对象获得新功能的方式。
3.行为型模式
这些设计模式特别关注对象之间的通信。