设计原则小记

开闭原则

  • 对扩展开放,对修改关闭,通过抽象定义框架,通过实现扩展细节

依赖倒置原则

  • 高层模块不应该依赖底层模块,二者都应该依赖抽象,抽象不应该依赖细节,细节应该依赖抽象,针对接口编程,而非针对实现编程,需要保证抽象稳定。
  • 抽象通过入参,或者构造方法的方式注入。

单一职责原则

  • 一个类,接口,方法只负责一项职责,代码逻辑最小粒度化。
    • 类级别,对类进行拆分,负责职责最小。
    • 接口级别,通过接口拆分,可实现多个接口,不同的接口,支持的方法不同。
    • 法级别,方法不可拆分,职责明确。

接口隔离原则

  • 实现需要的行为,不需要的不去实现 高内聚,低耦合的设计思想。

迪米特法则

  • 最少知道原则,只关注出入参,与方法内部实现依赖的类没有关注。

里氏替换原则

  • 一段程序,如果适用一个父类的话,一定也适用其子类,所有引用父类的地方必须能透明的使用其子类,子类对象能够替换父类对下,而程序逻辑不变
  • 杜绝继承泛滥,想清楚应不应该继承,比如正方形和长方形不应该继承四边形,同时是开闭原则的一种体现。
  • 子类可以扩展父类的功能,不能修改父类的功能
  • 子类可以扩展父类的抽象方法,不能覆盖父类的非抽象方法
  • 子类可以增加自己特有的方法
  • 当子类方法重载父类方法时,方法的前置条件(输入,入参)要比父类方法的出入参更加宽松。
  • 当子类方法重载父类方法时,方法的后置条件(输出,返回)要比父类方法的出入参更加严格或者相等。

合成复用原则

  • 编写代码,尽量使用对象的组合或者聚合,而不是继承的关系来达到复用的目的
  • 组合:具备相同的生命周期,比如人体,聚合有独立的生命周期,比如鼠标和键盘
posted @ 2024-05-20 23:55  好好的一个居士  阅读(19)  评论(0)    收藏  举报