【设计模式之禅】六大原则的解读
发布日期:2021-05-10 05:48:21 浏览次数:24 分类:精选文章

本文共 1108 字,大约阅读时间需要 3 分钟。

六大原则的解读

1. 单一职责原则

解释

单一职责原则(Single Responsibility Principle)要求一个类或接口只能有一个原因引起变化。简单来说,就是一个接口或类只负责一件事。它的核心思想是保持类和接口的职责单一。

优点

  • 降低类的复杂性,使其更易于理解和维护。
  • 提高可读性和可维护性。
  • 减少出错风险。

实践

  • 尽量让接口拥有单一职责。
  • 类的设计时,确保它只做一件事。
  • 遵守这一原则有时较为困难,但建议优先使接口遵循单一职责。

2. 里氏替换原则

解释

里氏替换原则(Liskov Substitution Principle)规定,使用引用或引用类型访问基类时,必须能够无 Fraction 知晓地使用其子类对象。直白地说,就是父类的地方可以用子类替换,但反过来却不可行。

实践

  • 为避免子类特有的方法和属性暴露,尽量避免在基类中使用子类的特定方法或属性。
  • 保持子类的独立性,避免将其与基类耦合过度。

3. 依赖倒置原则

解释

依赖倒置原则(Dependence Inversion Principle)强调,高层模块不应直接依赖低层模块,而是通过抽象对象间接依赖。同时,高层建立在抽象之上,细节不应直接依赖抽象,而是反过来依赖。

Java体现

  • 模块间依赖通过接口或抽象类实现,不直接依赖实现类。
  • 实现类只依赖接口或抽象类。

实践

  • 类尽量有接口或抽象类成员。
  • 磁变类型为接口或抽象类。
  • 避免直接继承具体实现类。
  • 避免重写父类方法,尽量选择实现接口的方式。

4. 接口隔离原则

两种接口类型

  • 实例接口:描述具体的对象类型,通常由实例构成。
  • 类接口:描述类的公共功能,建立在最小的接口上。

与单一职责原则的区别

  • 单一职责强调职责单一,注重业务逻辑划分。
  • 接口隔离则强调接口方法尽量最少。

实践

  • 用于单一子模块或业务逻辑。
  • 压缩过模块已含的接口。
  • 不可随意修改已污染的接口,可采用适配器模式。
  • 深入了解业务逻辑,才能设计出好的接口。

5. 迪米特法则

解释

迪米特法则(Law of Demeter)或最少知识原则,指两个对象间只应通过朋友通信,朋友间保持一定距离,不要暴露过多方法。

实践

  • 设计对象间耦合:仅与直接相关的对象交互。
  • 考虑跳转类来拉低耦合度。
  • 适度应用,避免过度。

6. 开闭原则

(重点)

解释

开闭原则要求软件实体如类、模块和函数对扩展开放,对修改关闭。通过扩展实现变化,而非修改现有代码。

实践

  • 通过接口或抽象类约束变化,提供扩展的可能性。
  • 控制模块行为,利用配置参数或接口以决定行为。
  • 制定详细项目章程。
  • 封装变化,使用接口或抽象类。

通过遵循开闭原则,设计高效灵活的系统结构。

上一篇:【设计模式之禅】单例模式
下一篇:【Linux】查看公网IP

发表评论

最新留言

表示我来过!
[***.240.166.169]2025年05月05日 09时18分02秒