在介绍设计模式之前先来了解一下设计原则,每个设计模式满足至少一个设计原则,了解这些设计原则可以让我们更好的去理解设计模式,而在学习完设计模式后,我们也能更好的理解设计原则。以下为我在看《HeadFirest设计模式》的时候总结的设计原则:
- 找出应用中可能需要变化之处,把它们独立出来,不要和那些不需要变化的代码混在一起。
- 针对接口编程,而不是针对实现编程。
- 类应该对扩展开放,对修改关闭。在不修改现有代码的情况下,就可搭配新的行为。这样的设计具有弹性可以应对改变,可以接受新的功能来应对改变的需求。
- 依赖倒置原则:要依赖抽象,不要依赖具体类。不能让高层组件依赖底层组件。且高层和底层组件都应依赖于抽象。所谓高层组件,就是由其他底层组件定义其行为的类。
- 一个类应该只有一个引起变化的原因。类的每个责任都有改变的潜在区域。超过一个责任,意味着超过一个概念的区域。应尽量让每个类保持单一责任。
- 好莱坞原则:允许低层组件将自己挂钩到系统上,但高层组件决定什么时候和怎样使用这些低层组件。换句话说,高层组件对待低层组件的方式是“别调用我们,我们调用你”。
- 迪米特原则:减少对象之间的交互,只和你的密友谈话。