gpt4 book ai didi

java - 高内聚松耦合的优化

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:14:56 26 4
gpt4 key购买 nike

我在一次技术面试中被问及项目的内聚和耦合。我广泛地解释了他们的定义,尽管我没有像他说的那样正确回答问题的第二部分。

“我们如何在一个项目中同时实现高内聚和松散耦合的设计,请解释一下这种方法应该如何在单体项目中实现?”

我回答说这两个目标是矛盾的,所以我们需要找出每个项目或模块的最佳选择,但我无法提供全面的答案。

如果有人帮助我,我将不胜感激。

最佳答案

我首先要回答的是,这与你所说的“这两个定义是矛盾的”恰恰相反。我将引用John W. Satzinger System Analysis and Design in a Changing World, Key Facts一书中的一段话来描述

Low coupling often correlates with high cohesion, and vice versa


通过在 Monolithic 中说,他们向您发出信号,让您询问有关 SOLID 原则 的信息,如果您应用它们,就会产生高内聚和松散耦合的项目。

定义如下:

1.单一职责原则(SRP)

定义:类更改的原因不应该超过一个。

好处:

  • 增强类(class)凝聚力
  • 依赖类之间的耦合更松散,
  • 更好的可读性
  • 复杂度较低的代码
  • 代码更易于理解和维护。

2。开闭原则(OCP)

定义:软件实体(类、模块、函数等)应该对扩展开放,对修改关闭。

好处:

  • 松耦合,
  • 提高可读性
  • 降低破坏现有功能的风险
  • 代码可维护和可重用。
  • 代码更健壮。

3。里氏替换原则(LSP)

定义:程序中的对象应该可以用其子类型的实例替换,而不会改变该程序的正确性。

好处:

  • 松耦合
  • 代码的可重用性更高。
  • 类层次结构易于理解。

4。接口(interface)隔离原则(ISP)

定义:许多特定于客户端的接口(interface)优于一个通用接口(interface)

好处:

  • 解耦系统。
  • 代码易于重构。

5。依赖倒置原则(DIP)

定义:高级模块不应该依赖于低级模块,而是两者都应该依赖于抽象。抽象不应依赖于细节;细节应该取决于抽象。

好处:

  • 高凝聚力。
  • 减少耦合。
  • 代码的可重用性更高。

更多信息


书籍

  • Steve McConnell 的代码完成
  • Bob 叔叔的整洁代码

关于java - 高内聚松耦合的优化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52247409/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com