1.单一职责原则:
a. 就一个类而言,应该仅有一个引起它变化的原因。
b. 如果能够想到多余一个的动机去改变一个类,那么这个类就具有多余一个的职责,就应该考虑类的职责的分离。
2.开放—封闭原则:
a. 开放拓展,封闭更改。
b.多拓展,少修改。
c. 总会有无法预测的需求(不可能完全的封闭),所以,必须先猜测出最有可能发生变化的种类,然后构造抽象来隔离那些变化。
d. 当发变化时要尽快创建抽象隔离变化,以免发生同类变化。
e. 开放—封闭之后要做到——>面对需求(变化),对程序的改动是增加新的代码进行的,而不是修改原来的代码。(需要做到代码的拓展性比较好)
f. 应仅对程序中出现频繁变化的那些部分做出抽象,而不能可以抽象。
3.依赖倒转原则:
a. 高层模块不应该依赖低层模块,两者都应该依赖抽象(抽象类或接口)。
b. 针对接口编程,不要对实现编程。
c.强内聚,松耦合 ---比如访问数据库时,我们吧访问数据库的代码写成函数,没次做新项目复用时只要调这些函数即可。
4. 里氏转换:
a. 定义:子类必须能够替换它们的父类,而程序没有变化。-->这样父类才能真正被复用,子类也能够在父类基础上拓展。(因为子类拥有父类所有非private的行为和属性)
面向对象的标志:程序中所有依赖关系都是终止于抽象类或者接口。