通俗的说就是一个类只做一件事。就一个类而言,应该仅有一个引起它变化的原因。避免一个类负责多个功能的实现,当发生更改时影响其他功能而致使复用成为不可能。
程序的设计应该是不约束扩展,即扩展开放,但又不能修改已有功能,即修改关闭。
使用多个专门的协议、而不是一个庞大臃肿的协议,降低类之间的耦合。
程序设计应该依赖抽象接口,而不应该依赖具体实现。这就是经常说的接口编程思想。
派生类(子类)对象能够替换其基类(父类)对象被调用。也就是说,任何调用基类对象的功能,都可以调用派生类对象来替换,当然,反过来是不行的。如:继承。
一个对象应当对其他对象尽可能少的了解,减少依赖,实现高聚合、低耦合。