l:开闭原则,对程序的扩展是开放的,修改关闭,即:可以对原来的程序接口进行继承扩展,但是不能修改原来的程序代码
2:里氏代换原则,程序中基类能出现的地方,子类也能出现,即:能使用基类的地方,也一定适用于子类,并且程序的行为没有变化,子类可以扩展基类的功能,但不能修改基类的功能
3:依赖倒转原则:针对接口编程,高层模块不应该依赖低层模块,二者都应该依赖其抽象;抽象不应该依赖细节;细节应该依赖抽象,即:各自的类依赖于自己的接口,而不是依赖于具体的实现类
4:接口隔离原则:使用多个隔离的接口,比使用单个接口更好,即:不要把各种功能都杂糅都一个接口上
5:迪米特法则(最少知识原则):不希望类之间有直接联系,即:类之间的联系推荐使用友元的方式,门面模式与中介模式就是遵循这原则
6:合成复用原则:尽量使用合成聚合的方式,而不是使用继承,即:为了减少类之间的直接联系,不推荐使用继承的方式,而是使用合成聚合的方式,定义为变量的方式