Files
digital-garden-backup/dev/architecture/Open Closed Principle.md
2024-09-27 20:25:32 +03:00

2.0 KiB
Raw Blame History

aliases, tags, date, zero-link, parents, linked
aliases tags date zero-link parents linked
Open/Closed Principle
OCP
Принцип открытости/закрытости
maturity/🌱
2024-09-27
../../meta/zero/00 Архитектура ПО
SOLID

Классы должны быть открыты для расширения, но закрыты для модификации. Это значит, что поведение класса можно расширить без изменения его исходного кода. Обычно это достигается через наследование или использование интерфейсов.

  • Пример нарушения OCP: Изменение существующего класса для добавления нового функционала (например, новый способ оплаты).
  • Решение: Использовать интерфейсы или абстрактные классы для расширения функционала без изменения базового кода.
public interface PaymentMethod {
    void pay(double amount);
}

public class CreditCardPayment implements PaymentMethod {
    @Override
    public void pay(double amount) {
        // Оплата через кредитную карту
    }
}

public class PayPalPayment implements PaymentMethod {
    @Override
    public void pay(double amount) {
        // Оплата через PayPal
    }
}

Мета информация

Область:: ../../meta/zero/00 Архитектура ПО Родитель:: SOLID Источник:: Создана:: 2024-09-27 Автор::

Дополнительные материалы

Дочерние заметки