(1)单一责任原则(Single Responsily Pinciple, SRP).
就个类而言, 应该仅有个引起它变化的原因。即,当需要修改某个类的时候原因有且只有一个,让一个类只做种类型责任。
(2)开放-封闭原则(Open & Close Principle, OCP).
软件实体(类、模块、函数等)应该是可以扩展的,即开放的:但是不可修改的,即封闭的。
(3)里氏替换原则(Liskov Substitution Principle, LSP).
子类型必须能够替换掉他们的基类型。即,在任何父类可以出现的地方,都可以用子类的实例来赋值给父类型的引用。当一个子类的实例应该能够替换任何其超类的实例时,它们之间才具有是一个(is-a) 关系。
(4)依赖倒置原则(Dependence Inversion Principle, DIP).
抽象不应该依赖于细节,细节应该依赖于抽象。即,高层模块不应该依赖于低层模块,二者都应该依赖于抽象。
(5)接口分离原则(Interface SegregationPinciple, ISP).
不应该强迫客户依赖于它们不用的方法。时在抽象级别不应该有对于细节的依赖。这样做的好接口属于客户,不属于它所在的类层次结构。于处就在F可以最大限度地应对可能的依赖于抽象,不要依赖于具体,
变化。
上述(1)~ (5)是面向对象方法中的五大原则。Robert C.Martin提出的面向对象设计原则还包括以下几个。
(6)