设计模式与开发实践系列
设计模式相关的总结和例子,学习资料。
设计模式定义
设计模式的定义
在面向对象软件设计过程中针对特定问题的简洁而优雅的解决方案;也就是⼀套被反复使⽤、多数⼈知晓的、经过分类的、代码设计经验的总结。
分辨模式的关键是意图而不是结构
有很多模式的类图和结构确实很相似,但这不太重要,辨别模式的关键是这个模式出现的场景,以及为我们解决了什么问题。
设计模式原则
单一职责原则(SRP)
一个对象或方法只做一件事情。
就一个类而言,应该仅有一个引起它变化的原因。每个职责都是变化的一个轴线,如果一个方法承担了过多的职责,那么在需求的变迁过程中,需要改写这个方法的可能性就越大。
最少知识原则(LKP)
一个软件实体应当 尽可能少地与其他实体发生相互作用。这里的软件实体是一个广义的概念,不仅包括对象,还包括类、模块、函数、变量等。
最少知识原则要求我们在设计程序时,应当尽量减少对象之间的交互。如果两个对象之间不必彼此直接通信,那么这两个对象就不要发生直接的相互联系,可以转交给第三方进行处理。
开放-封闭原则(OCP)
软件实体(类、模块、函数)等应该是可以 扩展的,但是不可修改。
当需要改变一个程序的功能或者给这个程序增加新功能的时候,可以使用增加代码的方式,尽量避免改动程序的源代码。