digital-garden/dev/architecture/Open Closed Principle.md
Struchkov Mark 1536a6c68c
All checks were successful
continuous-integration/drone/push Build is passing
Обновление
2024-09-27 20:25:32 +03:00

2.0 KiB
Raw Blame History

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 Автор::

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

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