Java中的凝聚力
Java中的内聚是面向对象的原则,它与确保一个类的设计具有单一的、重点突出的目的最密切相关。在面向对象的设计中,内聚指的是如何设计单个类。
Note: The more focused a class is, the more cohesiveness of that class is more.
高内聚的优点是这样的类比低内聚的类更容易维护(并且更少更改)。高内聚的另一个好处是目标明确的类比其他类更容易重用。
示例:假设我们有一个将两个数字相乘的类,但同一个类创建了一个显示结果的弹出窗口。这是一个低内聚类的示例,因为窗口和乘法运算没有太多共同点。为了使其具有高内聚性,我们必须创建一个 Display 类和 Multiply 类。 Display 会调用 Multiply 的方法来获取结果并显示出来。这种方式开发了一个高凝聚力的解决方案。
让我们了解一下高内聚程序的结构:
Java
// 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));
}
}
Java
// 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));
}
}
输出
25
Java
// 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
高内聚和低内聚示意图:
解释:在上图中,我们可以看到,在低内聚情况下,只有一个类负责执行许多不常见的作业,这降低了可重用性和维护的机会。但是在高内聚中,所有作业都有一个单独的类来执行特定的作业,这会带来更好的可用性和维护性。
高内聚和低内聚的区别:
- 高凝聚力是指你的班级完成了明确的工作。低凝聚力是指一个班级做了很多没有太多共同点的工作。
- 高内聚为我们提供更好的维护设施,低内聚导致难以维护、理解和降低可重用性的单一类