设计模式6原则

SOLID C

迪米特原则(Demeter Principle)

类与类最少知道,模块相对独立。

  • 类的划分上,创建低耦合的类;
  • 类的设计上,降低成员的访问权限;
  • 类的引用上,减少其他对象的引用次数;
  • 谨慎使用序列化(Serializable)功能。

开闭原则(Open Close Principle)

对扩展开放,对修改关闭。

  • 抽象约束,封装变化。

里氏替换原则(Liskov Substitution Principle)

任何基类出现的地方,子类一定可以出现。

  • 子类可以实现父类的抽象方法,但不能覆盖父类的非抽象方法;
  • 子类中可以增加自己特有的方法;
  • 子类重载父类的方法时,前置条件(即方法的输入参数)要比父类的更宽松;
  • 子类实现父类的方法时,后置条件(即方法的输出/返回值)要比父类的更严格。

依赖倒转原则(Dependencce Inversion Principle)

针对接口编程,依赖于抽象而不具体实现。

  • 每个类尽量提供接口或/和抽象类;
  • 变量的声明类型尽量是接口或者抽象类;
  • 任何类都不应该从具体类派生;
  • 使用继承时尽量遵循里氏替换原则。

接口隔离原则(Interface Segregation Principle)

使用多个隔离的接口。

  • 接口尽量小,但是要有限度。一个接口只服务于一个子模块或业务逻辑;
  • 为依赖接口的类定制服务。类只提供需要的方法,屏蔽不需要的;
  • 拒绝接口固定化。不同的业务逻辑,接口的拆分标准就不同;
  • 提高内聚,减少对外交互。接口用最少的方法去完成最多的事情。

合成复用原则(Composite Reuse Principle)

尽量使用合成/聚合,而不是继承。

posted @   wesson2019  阅读(112)  评论(0编辑  收藏  举报
编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示