您如何定义以下代码?
a)高凝聚力
b)低凝聚力
即使takeAndGlue()
使用2个单独的方法调用2个内容,我也会说高,因此stackTrace
是可追踪的。
public class Assembler()
{
public void take()
{
System.out.println("Take the thing");
}
public void glue()
{
System.out.println("Glueing the thing");
}
public void takeAndGlue()
{
take();
glue();
}
}
答案 0 :(得分:1)
维基百科说..
应用于面向对象的编程,如果服务的方法 给定的类在许多方面往往相似,然后类是 据说有很高的凝聚力。
在你的例子中,所有这三种方法都在进行与汇编相关的工作,这个类可以说具有很高的凝聚力。
答案 1 :(得分:0)
此类显示低内聚,因为可以单独调用take()和glue(),但如果顺序不正确则没有意义。换句话说:take(),glue()应该不是公开的。
答案 2 :(得分:0)
这是低凝聚力的一个例子:
class Cal
{
public static void main(String args[])
{
//calculating sum here
result = a + b;
//calculating difference here
result = a - b;
//same for multiplication and division
}
}
这是高凝聚力的一个例子:
class Cal
{
public static void main(String args[])
{
Cal myObj = new Calculator();
System.out.println(myObj.SumOfTwoNumbers(5,7));
}
public int SumOfTwoNumbers(int a, int b)
{
return (a+b);
}
//similarly for other operations
}
但高内聚意味着类中的函数执行它们应该执行的操作(就像它们被命名一样)。而不是某些功能完成其他功能的工作。因此,以下可以是高凝聚力的一个例子: