1.单一职责原则,是指一个类的功能要单一,不能包罗万象
2.开放封闭原则,一个模块在扩展性应该是开放的,而在更改方面应该是封闭的
3.替换原则,子类应当可以替换父类并出现在父类能够出现的任何地方
4.依赖原则,具体依赖抽象,上层依赖下层
5.接口分离原则,模块间要通过抽象接口隔离开,而不是通过具体的类强耦合在一起