作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我得到了这组代码,需要提出改进代码内聚和类耦合的方法。但我认为这些类很好地分离了,因为看起来它们正在利用事件。就内聚性而言,所有 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/
虽然这个论坛上有很多包含耦合和内聚示例的好示例,但我正在努力将其完全应用到我的代码中。我可以识别代码中可能需要更改的部分。是否有任何 Java 专家能够查看我的代码并向我解释哪些方面是好的和坏的。我根
我对拆分对象的正确方法有疑问。 假设我有两个对象,例如工具和技术。一个技术可以有多个与之关联的工具对象,但它是否被认为是低内聚/紧密耦合让技术直接了解一个工具?让 Technology 对象包含一组
我是一名优秀的程序员,十分优秀!