目录
开闭原则
开闭原则是所有原则的总目标,所有原则最终都是为了走向开闭原则
开闭原则简单来说就是指对扩展开放,对修改关闭,即在添加新功能时不需要修改源代码,他人可以直接使用却不能进行修改
开闭原则不修改源代码,减少了bug的引入,易维护,易定位错误(加入的代码中)
里氏替换原则
使用父类或接口类型来引用子类或接口的实现类,即子类应当可以替换父类并出现在父类能够出现的地方,里氏替换原则是多态的基础,即一个父类下有多种继承它的子类,可以用父类声明这些子类
迪米特原则
迪米特原则又叫最少知识原则,只与你的直接朋友交谈,不与"陌生人"说话
优点:降低类之间的耦合度,提高模块的相对独立性
缺点:过度使用迪米特法则会使系统产生大量的中介类,从而增加系统的复杂性
单一职责原则(DIP)
类不要承担太多的功能,职责要单一,减少因在类中添加新功能或者修改时bug引入的机会
如果承担太多功能,则每个功能的变化都会影响该类
接口分离原则(ISP)
客户端不应依赖它不需要的接口
可以理解为接口要符合单一职责原则
依赖倒置原则
高层模块不应该依赖底层模块,二者都应该依赖抽象
抽象不依赖于具体,具体依赖于抽象
中心思想是面向接口编程
原因:细节的东西往往是多变的,而越抽象则越稳定
组合/聚合复用原则
如果处于代码复用的目的,则应该使用组合/聚合复用原则,而不要使用继承
这里简单解释一下组合和聚合
组合和聚合指一个对象由多个对象组成,之间紧密联系,但是组合的组成对象中如果有某个对象出现问题了可以再创建一个新的对象来代替原来的对象,而聚合则不能