目录
设计模式和设计原则的关系
常见的面向对象设计原则
1.单一职责原则SRP
解释:一个类应该仅有一个引起它变化的原因。 变化原因就叫做职责
难点在于如何区分职责???多大的粒度,如何细化
2.开放-关闭原则OCP
解释:一个类应该对扩展开放,对修改关闭。
关键点:合理的抽象、分离出变化与不变化的部分,针对变化的的部分预留下可扩展的方式
3.里氏替换原则LSP
解释:子类型必须能够替换掉它们的父类型。
关键点:里氏替换是实现开闭的主要原则之一,因为开闭原则的扩展性有一个方法可以实现就是继承,子类继承父类那么必须保证子类能够正确替换父类,也就是里氏替换原则,这样才能够实现开闭,也就是扩展功能。
4.依赖倒置原则DIP
解释:要依赖与抽象,不要依赖与具体类。
关键点:要做到依赖倒置,典型的应该做到:高层模块不应该依赖于底层模块,二者都应该依赖于抽象;抽象不应该依赖于具体实现,具体实现应该依赖于抽象
5.接口隔离原则ISP
解释:不应该强迫客户依赖于他们不用的方法
关键点:对于庞大的接口进行用户定制化的分离。
6.最少知识原则LKP
解释:只和你的朋友谈话
哪些对象可以被当作朋友呢?
①当前对象本身
②当前对象所创建的对象
③通过方法的参数传递进来的对象
④当前兑现过的实例变量所引用的对象
⑤方法内所创建或实例化的对象