前言:知己知彼,百战不殆(小声bb)
设计原则
找出应用中可能需要变化之处,把它们独立出来,不要和那些不需要变化的代码混在一起
把会变化的部分取出并封装起来,好让其他部分不会受到影响,这样可以导致代码的变化所引起的后果变少,代码更加可控并且不容易出问题。
大多数的模式都着眼于软件变化的主题,允许系统局部改变独立于其他部分。
针对接口编程,而不是针对实现编程
这里的接口不一定指的interface关键字,而是说针对超类型编程,即利用多态,动态绑定对应的执行方法。
多用组合,少用继承
“有一个”(have a)可能比“是一个(is a)”更好。
为了交互对象之间的松耦合而努力
松耦合的设计之所以能让我们建立有弹性的OO系统,能够应对变化,是因为对象之间的互相依赖降低到了最低。
类应该对扩展开放,对修改关闭
依赖倒置原则
要依赖抽象,不要依赖具体的类
最少知识原则,只和你的密友交谈
即减少对象之间的交互,不要将太多的类耦合在一起,导致修改一部分影响大部分。
建议:在对象的方法内,我们应该只调用属于以下类型的方法:此对象本身的、被当成方法的参数而传进来的对象的、此方法所创建或者实例化的任何对象的、对象的任何组件的。
好莱坞原则
防止循环依赖,在此原则下,我们允许低层组件将自己挂钩到系统上,但是高层组件会决定什么时候和怎么样使用这些低层组件。所以对于高层组件对待低层组件的方式是别调用我们,我们会调用你。
单一责任原则
一个类应该只有一个引起变化的原因。
参考链接:
https://xiaochai.github.io/2019/08/04/head-first-design-patterns/