面向对象编程solid原则

  • 单一职责(Single Responsibility):类和对象最好是只有单一的职责,在程序设计中如果发现某些类存在多个职责,可以考虑进行拆分;
  • 开闭原则(Open-close, open for extension, close for modification):设计要对扩展开放,对修改关闭,换句话说,程序应保证平滑的扩展性,尽量避免因为新增同类功能而修改现有设计,这样可以少产出些回归问题。
  • 里式替换(Liskov Substitution):这是面向对象的基本要素之一,凡是可以使用父类或者基类的地方,都可以用子类替换;
  • 接口分离(Interface Segregation):在我们进行接口的设计时,如果一个接口定义了太多方法,那么在某个类实现这个接口时,可能面临两难,某些方法是不用的,这就破坏了程序的内聚性;
    对于这种情况,可以将功能单一的接口进行拆分,这样,在添加新功能时可以在不改变原有接口的基础上进行功能的扩展;
  • 依赖反转(Dependency Inversion):实体应该依赖于抽象而不是实现,也就是说高层次的模块,不应该依赖于低层次模块,而是应该基于抽象,实践这一原则是保证代码适当耦合度的法宝。

    推荐阅读