"Нарушение принципов ООП в Delphi при использовании обработчиков сообщений"Delphi , ОС и Железо , Справочник по сообщениямНарушение принципов ООП в Delphi при использовании обработчиков сообщений При работе с языком программирования Object Pascal в среде Delphi иногда можно столкнуться с ситуациями, когда нарушаются принципы объектно-ориентированного программирования (ООП). Одной из таких ситуаций является поведение Delphi при использовании обработчиков сообщений в сочетании с наследованием классов. Рассмотрим пример, который демонстрирует эту проблему. Допустим, у нас есть два класса: TBaseClass
TDerivedClass
При нажатии на кнопку в главной форме мы отправляем сообщение
По задумке автора, метод Дело в том, что при использовании директивы Эта особенность поведения Delphi может нарушать принципы инкапсуляции и наследования, так как приватные методы базового класса становятся доступными в классах-потомках через обработчики сообщений. В официальной документации Delphi об этом поведении ничего не сказано, но, судя по всему, это не является ошибкой компилятора, а скорее особенностью работы с обработчиками сообщений. Подтвержденный ответ: При использовании обработчиков сообщений в Delphi могут нарушаться принципы ООП, в частности, приватные методы базового класса могут вызываться из классов-потомков через обработчики сообщений. Альтернативный ответ: Данное поведение Delphi является особенностью работы с обработчиками сообщений и не является ошибкой компилятора. Нарушение принципов ООП в Delphi при использовании обработчиков сообщений: Несмотря на то, что метод в базовом классе был определен как приватный, он все равно вызывается из класса-потомка через обработчики сообщений. Комментарии и вопросыПолучайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта. :: Главная :: Справочник по сообщениям ::
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 |