浅析SOLID原则

70 阅读1分钟

S单一职责原则

每个类只负责软件中的一个功能,并将该功能完全封装(隐藏)在该类中。

根据功能拆分类的代码,降低代码耦合度,提高可读性和复用性。

O开放封闭原则

实现新功能时能保持已有的代码不变。

所谓开放就是指可以创建子类并对其做任何事情,如新增方法或成员变量,重写基类行为等;封闭是指某个类已经做好充分的准备并可供其他类使用,即接口已经明确定义且以后不会修改。

参考策略模式、工厂模式。

L里式替换原则

子类应该保持与父类行为的兼容,重写方法时,应该对父类的行为进行拓展,而不是将其完全替换。

  • 子类方法的参数类型应该是父类方法相匹配或更加抽象(父类参数类型的基类)
  • 子类方法的返回值类型应该是是父类方法相匹配或者是其子类。
  • 子类的方法不应该抛出基础方法预期之外的异常类型
  • 子类不应该加强前置条件。(原先参数是int,子类要求负值就抛出异常)
  • 子类不能削弱后置条件。
  • 超类的不变量必须保留。
  • 子类不能修改超累中私有变量的值。

I 接口隔离原则

D 依赖倒置原则