Skip to content

单一职责原则

  1. 一个类应该只负责一项职责。
  2. 提高类的可读性,可维护性。
  3. 只有逻辑足够简单时,才可以在代码级违反单一职责原则,当类少的时候,可以在方法层面上体现单一职责原则。

接口隔离原则

客户端不应该依赖它不需要的借口,一个类应该依赖最小的接口。实现这个原则,会出现很多的接口。

依赖倒转原则

  1. 高层模块爱不应该依赖底层模块,它们都应该依赖抽象模块。
  2. 抽象模块不应该依赖细节,细节模块应该依赖抽象模块。
  3. 面向接口原则,实现方式由三种:

  4. 在抽象方法中传入接口,具体使用的时候传入具体的实现类。

  5. 让某个接口作为类的成员变量,在类的构造方法中传入接口,具体使用的时候传入具体的实现类。
  6. 让某个接口作为类的成员变量,在类的setter方法中传入接口,具体使用的时候传入具体的实现类。
  7. 变量声明的类型,尽量是接口或者是抽象类,有利于程序的扩展。

里氏替换原则

  1. 使用基类的地方,必须能使用其子类的对象。
  2. 子类中尽量不要重写父类的方法。
  3. 尽量让一些类去继承基类,而继承基类的那些类之间进行互相的组合(互为成员变量啥的)。

开闭原则

开:能易于扩充。 闭:对使用方屏蔽细节。 基本思想就是将一些产品类,继承某个基类或者是实现接口,以实现在扩展产品的时候直接添加就好,在使用的时候也和之前的一致。

迪米特法则

  1. 一个类应该与其他类保持较少的联系,以降低耦合度。
  2. 又名最少知道原则,类A中有个类B的对象,类B中应该把相关的东西封装好,让A仅简单调用就能完成功能吗,而不是A中也涉及B的逻辑。

合成复用原则

尽量使用合成/聚合的方式,而少使用继承。使用某个方法使用到类B的方法可以将B的对象传入(某个方法或者是构造方法),或者把B类的对象作为成员变量。

总结

  1. 提炼共同之处。
  2. 面向接口编程。
  3. 高内聚低耦合