Struchkov Mark
1536a6c68c
All checks were successful
continuous-integration/drone/push Build is passing
2.0 KiB
2.0 KiB
aliases | tags | date | zero-link | parents | linked | ||||||
---|---|---|---|---|---|---|---|---|---|---|---|
|
|
2024-09-27 |
|
|
Классы должны быть открыты для расширения, но закрыты для модификации. Это значит, что поведение класса можно расширить без изменения его исходного кода. Обычно это достигается через наследование или использование интерфейсов.
- Пример нарушения 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 Автор::