Принцип открытости/закрытости — это самый основной принцип проектирования в мире разработки программного обеспечения. Он помогает нам построить стабильную и гибкую систему.
Определение:
Программная сущность, такая как класс, модуль и функция, должна быть открыта для расширения и закрыта для модификации.
Смысл принципа открытия и закрытия заключается в том, что программный объект должен быть расширен для достижения изменений, а не путем модификации существующего кода для достижения изменений.
Принцип открытия и закрытия — это принцип, который ограничивает текущую разработку и проектирование будущих вещей программного объекта.
Примечание. Принцип открытия и закрытия открыт для расширения и закрыт для модификации. Это не означает, что никаких модификаций не будет. Изменения в низкоуровневых модулях должны быть сопряжены с высокоуровневыми модулями, иначе это будет изолированный и бессмысленный фрагмент кода.
Важность принципа открытия и закрытия:
- Влияние принципов открытия и закрытия на тестирование
Принцип открытия и закрытия заключается в том, чтобы исходный тестовый код все еще мог нормально работать, нам нужно только протестировать расширенный код.
- Принцип открытия и закрытия может улучшить возможность повторного использования
В объектно-ориентированном дизайне вся логика объединяется из атомарной логики, вместо того, чтобы реализовывать бизнес-логику в классе независимо. Только таким образом можно повторно использовать код. Чем меньше степень детализации, тем больше вероятность повторного использования.
- Открытый и закрытый принцип может улучшить ремонтопригодность
- Требования к объектно-ориентированной разработке
Как использовать принцип открытия и закрытия:
Во- первых , ограничьте расширение через интерфейс или абстрактный класс, ограничьте расширение границы и не допускайте общедоступных методов, которых нет в интерфейсе или абстрактном классе;
Во- вторых , попробуйте использовать интерфейсы или абстрактные классы для типов параметров и ссылочных объектов вместо классов реализации;
В- третьих , уровень абстракции должен быть максимально стабильным, после его подтверждения никакие модификации не допускаются.
Инкапсуляция изменений имеет два значения:
Во-первых, инкапсулируйте те же изменения в интерфейс или абстрактный класс;
Во-вторых, инкапсулируйте различные изменения в разные интерфейсы или абстрактные классы. Два разных изменения не должны появляться в одном и том же интерфейсе или абстрактном классе.
Примеры
Например, открытие и закрытие дверей вручную.
Если есть новый спрос, необходимо увеличить функцию открытия и закрытия ящика вручную. Для кода вам нужно добавить класс Drawer и одновременно изменить класс Hand.
Следуя примеру принципа открытия и закрытия OCP, открытие и закрытие двери вручную зависит от интерфейса, и конкретный класс реализации реализует этот интерфейс.
Когда необходимо увеличить количество рук, открывающих и закрывающих холодильник, класс холодильника реализует этот интерфейс без изменения исходного класса и интерфейса Hand.
mostbet online [url=https://mostbetbangladeshbd.com]mostbetbangladeshbd com[/url] casino slots mostbetbangladeshbd.com .
https mostbet com aviator [url=https://mostbetkzcasino.kz/]https://mostbetkzcasino.kz/[/url] лучшее онлайн казино по отзывам https://mostbetkzcasino.kz/ .
Also, EMPULSE included patients without a previous history of heart failure that is, acute de novo, who were not yet treated for heart failure priligy near me
priligy in usa Indomethacin Indocin is a NSAID and can cause ulceration of the esophagus, stomach, duodenum, or small intestine