单一职责原则
就一个类而言,应该仅有一个引起他变化的原因
开放-封闭原则
软件实体(类,模块,函数等)应该可以扩展,但是不可修改,就是对扩展开放,对更改封闭。
依赖倒置原则
- 高层模块不应该依赖底层模块,两个都应该依赖抽象 例如:业务模块和数据库模块都依赖JDBC接口,其中业务模块是高层,数据库模块是底层,数据库接口就是抽象
- 抽象不应该依赖细节,细节应该依赖抽象 例如:mysql,oracle等数据库的实现都依赖同一个数据库接口,而不是根据不同数据库实现不同接口
里氏代换原则
子类必须能替换掉他们的父类型
一个软件实体如果使用的是一个父类的话,南无一定适用于其子类,而且察觉不出父类对象和子类对象的区别,也就是说,在软件里面,把父类都替换成他的子类,程序的行为没有变化。