设计原则

设计原则

依赖倒置

  • 高层模块不应该依赖低层模块,两者都应该依赖抽象;
  • 抽象不应该依赖具体实现,具体实现应该依赖于抽象;

自动驾驶系统公司是高层,汽车生产厂商为低层,它们不应该互相依赖,一方变动另一方也会跟着变动;而应该抽象一个自动驾驶行业标准,高层和低层都依赖它;这样以来就解耦了两方的变动;自动驾驶系统、汽车生产厂商都是具体实现,它们应该都依赖自动驾驶行业标准(抽象);

开放封闭

  • 一个类应该对扩展(组合和继承)开放,对修改关闭;

面向接口

  • 不将变量类型声明为某个特定的具体类,而是声明为某个接口;
  • 客户程序无需获知对象的具体类型,只需要知道对象所具有的接口;
  • 减少系统中各部分的依赖关系,从而实现“高内聚、松耦合”的类型设计方案;

封装变化点

  • 将稳定点和变化点分离,扩展修改变化点;让稳定点和变化点的实现层次分离;

单一职责

  • 一个类应该仅有一个引起它变化的原因;

里氏替换

  • 子类型必须能够替换掉它的父类型;主要出现在子类覆盖父类实现,原来使用父类型的程序可能出现错误;覆盖了父类方法却没有实现父类方法的职责;

接口隔离

  • 不应该强迫用户依赖于它们不用的方法;
  • 一般用于处理一个类拥有比较多的接口,而这些接口涉及到很多职责;

组合优于继承

  • 继承耦合度高,组合耦合度低;
posted @ 2022-03-11 20:11  DarkH  阅读(24)  评论(0编辑  收藏  举报