设计原则小记

开闭原则

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

依赖倒置原则

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

单一职责原则

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

接口隔离原则

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

迪米特法则

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

里氏替换原则

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

合成复用原则

  • 编写代码,尽量使用对象的组合或者聚合,而不是继承的关系来达到复用的目的
  • 组合:具备相同的生命周期,比如人体,聚合有独立的生命周期,比如鼠标和键盘
posted @   好好的一个居士  阅读(5)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 记一次.NET内存居高不下排查解决与启示
点击右上角即可分享
微信分享提示