开放-封闭原则:类应该对扩展开放,对修改关闭。单一职责原则:应该有且仅有一个原因引起类的变更依赖倒置原则:高层模块不应该依赖于低层模块,二者都应该依赖于抽象;抽象不应该依赖于细节,细节应该依赖于抽象。里氏替换原则:子类对象必须能够替换掉所有父类对象。接口分离原则:不应该强迫客户依赖于它们不用的方法。