学习设计模式重要的不是你将来会不会用到这些设计模式,而是通过这些模式让你找到“封装变化”、“对象间松散耦合”、“针对接口编程”的感觉,从而设计出易维护、易扩展、易复用、灵活性好的的程序。面向对象设计的七大原则是设计模式的核心思想,任何一种设计模式的提出都是为了满足面向对象设计原则中的一个或多个。所以在学习具体的设计模式之前,我们需要对面向对象设计原则进行仔细的分析,并熟记于心,面向对象设计原则将会贯穿整个学习过程。
面向对象设计七大原则
1. 单一职责原则(Single Responsibility Principle)
每一个类应该专注于做一件事情。就一个类而言,应该仅有一个引起它变化的原因。
2. 里氏替换原则(Liskov Substitution Principle)
子类型必须能够替换掉它们的父类型,超类存在的地方,子类是可以替换的。
3. 依赖倒转原则(Dependence Inversion Principle)
抽象不应该依赖细节,细节应该依赖于抽象,针对接口编程,不要对实现编程。
4. 接口隔离原则(Interface Segregation Principle)
应当为客户端提供尽可能小的单独的接口,而不是提供大的总的接口。
5. 迪米特法则(Law Of Demeter)
又叫最少知识原则,一个软件实体应当尽可能少的与其他实体发生相互作用。
6. 开闭原则(Open Close Principle)
面向扩展开放,面向修改关闭。当软件需要变化时,尽量通过扩展软件实体的行为来实现变化,而不是通过修改已有的代码来实现变化。
7. 组合/聚合复用原则(Composite/Aggregate Reuse Principle CARP)
尽量使用合成/聚合达到复用,尽量少用继承。原则: 一个类中有另一个类的对象。