Java 内聚力
Java中的内聚力是与确保一个类的设计具有单一的、明确的目的最密切相关的面向对象原则。在面向对象的设计中,凝聚力指的是如何设计一个单一的类。
注意: 一个类越集中,该类的内聚力就越强。
高内聚力的好处是,这样的类比低内聚力的类更容易维护(也更少改变)。高内聚力的另一个好处是,具有明确目的的类往往比其他类更容易被重用。
例子: 假设我们有一个将两个数字相乘的类,但同一个类却创建了一个显示结果的弹出式窗口。这是一个低内聚类的例子,因为窗口和乘法运算没有什么共同之处。为了使其具有高内聚性,我们必须创建一个显示类和一个乘法类。Display将调用Multiply的方法来获得结果并显示出来。这样就可以开发出一个高内聚的解决方案。
让我们了解一下高内聚力程序的结构 。
// Java program to illustrate
// high cohesive behavior
class Multiply {
int a = 5;
int b = 5;
public int mul(int a, int b)
{
this.a = a;
this.b = b;
return a * b;
}
}
class Display {
public static void main(String[] args)
{
Multiply m = new Multiply();
System.out.println(m.mul(5, 5));
}
}
输出
25
// Java program to illustrate
// high cohesive behavior
class Name {
String name;
public String getName(String name)
{
this.name = name;
return name;
}
}
class Age {
int age;
public int getAge(int age)
{
this.age = age;
return age;
}
}
class Number {
int mobileno;
public int getNumber(int mobileno)
{
this.mobileno = mobileno;
return mobileno;
}
}
class Display {
public static void main(String[] args)
{
Name n = new Name();
System.out.println(n.getName("Geeksforgeeks"));
Age a = new Age();
System.out.println(a.getAge(10));
Number no = new Number();
System.out.println(no.getNumber(1234567891));
}
}
输出
Geeksforgeeks
10
1234567891
高内聚力和低内聚力的图解:
解释: 在上图中,我们可以看到,在低内聚中,只有一个类负责执行许多不常见的工作,这就减少了重用性和维护的机会。但在高内聚中,所有的工作都有一个单独的类来执行特定的工作,这导致了更好的可用性和维护。
高内聚力和低内聚力的区别 。
- 高内聚力是指你有一个类来做一个定义明确的工作。低内聚是指一个类做了很多没有什么共同点的工作。
- 高内聚力给我们提供了更好的维护设施,而低内聚力则导致了难以维护、理解和减少重用性的单体类。