一、单一职责原则
类的职责要单一,不能将太多的职责放在同一个类中
二、开放封闭原则
软件实体对扩展开放,对修改关闭。
(注:软件实体可以指一个软件模块、一个由多个类组成的局部结构或一个独立的类。
抽象化是开闭原则的关键)
三、里氏代换原则
在软件系统中,能接受基类对象的地方,必然可以接受一个子类对象
(注:里氏代换原则是实现开闭原则的重要方式之一,由于使用基类对象的地方都可以使用子类对象,因此在程序中尽量使用基类类型来对对象进行定义,而在运行时再确定其子类类型,用子类对象来替换父类对象。)
四、合成复用原则
在系统中尽量多使用聚合和组合关系,尽量少使用或者不适用继承关系
五、依赖倒置原则
要针对抽象层编程,而不要针对具体类编程,即要针对接口编程,不要针对实现编程。
(注:依赖倒置原则的常用实现方式之一是在代码中使用抽象类,而将具体类放在配置文件中。)
六、接口隔离原则
尽量使用专门的接口来代替一个统一的接口
七、迪米特法则
一个软件实体对其他实体的引用越少越好,即如果两个类不必彼此直接通信,那么这两个类就应该通过引入一个第三者发生间接交互。