1.单一职责原则SRP(single responsibility principle)一类应该只有一个引起它变花的原因
2.开放-关闭远程OCP 一个类应该对扩展开放、对修改关闭
3.里氏替换原则LSP 类似多态、就是子类可以替换掉他们的父类型
4.依赖倒置原则DIP(dependence inversion principle) 高层模块、低层模块都应该依赖于抽象
5.接口隔离远程ISP 针对不同的用户制定不同的方法
6.优先使用组合,而非继承。任何继承可以实现的、组合都可以实现
7.面向接口编程。(实现隔离、提供接口---可以使用设计模式中的简单工厂实现该功能,也就是出现只知接口不知实现。在系统分析和架构中,分清层次和依赖关系,每个层次不是直接向其上层提供服务(即不是直接实例化在上层中),而是通过定义一组接口,仅向上层暴露其接口功能,上层对于下层仅仅是接口依赖,而不依赖具体类。)
8.类之间应该零耦合,或者只有传导耦合