Сohesion: что это и как развивать ключевой навык командного взаимодействия
Cohesion - это мера, которая отображает связь между элементами внутри модуля или компонента. Она определяет, насколько сильно связаны методы и переменные внутри класса или подсистемы.
Хорошая cohesion означает, что компоненты являются логически взаимосвязанными и выполняют одну задачу. Это облегчает понимание кода и повышает его переиспользуемость.
Пример кода с низкой cohesion:
class Calculator {
int add(int a, int b) {
return a + b;
}
int subtract(int a, int b) {
return a - b;
}
int multiply(int a, int b, int c) {
return a * b * c;
}
}
Этот класс имеет низкую cohesion, потому что он содержит различные методы, которые выполняют разные задачи: сложение, вычитание и умножение с различным количеством параметров.
Пример кода с высокой cohesion:
class Customer {
String name;
String address;
int age;
boolean isPremium;
public void setName(String name) {
this.name = name;
}
public void setAddress(String address) {
this.address = address;
}
public void setAge(int age) {
this.age = age;
}
public void setPremium(boolean isPremium) {
this.isPremium = isPremium;
}
public String getName() {
return name;
}
public String getAddress() {
return address;
}
public int getAge() {
return age;
}
public boolean isPremium() {
return isPremium;
}
}
Этот класс имеет высокую cohesion, потому что все его методы связаны с обработкой данных о клиенте, и выступают в роли геттеров и сеттеров для переменных объекта. Это упрощает понимание кода и повышает его переиспользуемость.
В заключение, хорошая cohesion является ключом к хорошо организованному и читаемому коду, который легко поддерживать и расширять. Она указывает на правильное разбиение кода на независимые компоненты, выполнение только тех задач, которые необходимы, и облегчает понимание внутренней логики компонента при последующем его изменении.