Ответ
God Object нарушает Принцип единственной ответственности (Single Responsibility Principle, SRP).
Почему это нарушение: SRP гласит, что класс должен иметь только одну причину для изменения. God Object концентрирует множество несвязанных функций, что приводит к:
- Высокой связанности (coupling).
- Сложности тестирования и поддержки.
- Хрупкости — изменение в одной области может сломать другие.
Пример God Object (нарушение SRP):
// Нарушение: Класс делает слишком много.
class OrderManager {
public void saveOrder(Order o) { /* ... */ }
public void calculateTax(Order o) { /* ... */ }
public void generateInvoice(Order o) { /* ... */ }
public void sendEmailNotification(Order o) { /* ... */ }
public void updateInventory(Order o) { /* ... */ }
}
Решение (следование SRP):
// Каждый класс отвечает за одну задачу.
class OrderRepository { void save(Order o) { /* ... */ } }
class TaxCalculator { void calculate(Order o) { /* ... */ } }
class InvoiceGenerator { void generate(Order o) { /* ... */ } }
class NotificationService { void sendEmail(Order o) { /* ... */ } }
class InventoryService { void update(Order o) { /* ... */ } }