gpt4 book ai didi

java - 提高类的内聚和耦合

转载 作者:行者123 更新时间:2023-11-30 11:53:18 24 4
gpt4 key购买 nike

我得到了这组代码,需要提出改进代码内聚和类耦合的方法。但我认为这些类很好地分离了,因为看起来它们正在利用事件。就内聚性而言,所有 init() 调用都放在一起,对我来说一切都很好。

public class A
{
private C t;
private B g;
public static void main(String args[]) {
// Creates t and g.
t = new C();
t.init();
g = new B();
g.init();
g.start(this);
}
pubic void update (Event e)
{
// Performs updating of t based on event
}
}

public class C
{
public C() { ... }
public void init() { ... }
}

public class B
{
public B() { ... }

public void init() { ... }

public void start(A s) {
e = getNextEvent();
while (e. type != Quit)
if (e.type == updateB)
update(e) ;
else
s.update(e) ;
e = getNextEvent();
}

public void update(Event e) { ... }
}
}

还有办法提高类的内聚和耦合吗?我看起来不错,但我想我漏掉了一些东西。

感谢您对此提出任何建议。

最佳答案

开始编写单元测试(更好的是,执行 TDD )。耦合(以及在较小程度上的内聚或缺乏内聚)将立即变得明显。

例如,类 B 的 start 方法有一个类型为 A 的参数。在您的示例中,您可以只实例化 A,但如果 A 有其他依赖项怎么办?也许开始需要的只是一个 A 实现的接口(interface)(带有更新方法)。

getNextEvent 是做什么的?如果它使用其他依赖项,那么在测试工具中获取 B 可能会很困难。

测试可以帮助验证您的设计。

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

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