Встречается на собеседованиях • сегодня

Как реализуешь паттерн High Cohesion при Refactoring

High Cohesion означает, что класс или модуль должен выполнять одну узкую задачу, а его методы должны быть тесно связаны с этой задачей.

Пример до рефакторинга:

java
class UserManager {
    void saveUser(User user) { /* сохранение в БД */ }
    void sendEmail(User user) { /* отправка email */ }
    void validateUser(User user) { /* валидация */ }
}

Здесь класс выполняет слишком много несвязанных задач.

После рефакторинга:

java
class UserRepository {
    void save(User user) { /* только сохранение */ }
}

class EmailService {
    void send(User user) { /* только отправка */ }
}

class UserValidator {
    boolean isValid(User user) { /* только валидация */ }
}

Каждый класс теперь отвечает за одну задачу, что повышает связность (Cohesion).

Ключевые принципы:

  • Разделение обязанностей (Single Responsibility).
  • Минимизация зависимостей между классами.
  • Четкая фокусировка на одной задаче.
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы