v # 单一职责原则
就一个类而言,应该仅有一个引起它变化的原因。
如果一个类承担的职责过多,就等于把这些职责耦合在一起,一个职责的变化可能会削弱或者抑制这个类完成其他职责的能力。这种耦合会导致脆弱的设计,当变化发生时,设计会遭受到意想不到的破坏。
开放封闭原则
软件实体(类、模块、函数等)应该可以扩展,但是不可修改。
对于扩展是开放的,对于更改是封闭的。
面对需求,对程序的改动是通过增加新代码进行的,而不是更改现有的代码。
依赖倒转原则
1.高层模块不应该依赖底层模块。两个都应该依赖抽象
2.抽象不应该依赖细节。细节应该依赖抽象
抽象不应依赖细节,细节应该依赖于对象。说白了,针对接口编程,不要对实现编程。
里氏代换原则
//接 依赖倒转
里氏代换原则LSP:子类型必须能够替换掉它们的父类型。
这个原则使继承复用成为了可能只有当子类可以替换掉父类 ,软件单位的功能不受影响时,父类才能被真正复用,而子类也能在父类的基础上增加新的行为。
由于子类型的可替换性才使得使用父类类型的模块在无需修改的情况下就能扩展。
面向对象的4个好处
可维护、可扩展、可复用、灵活性好