Книга: Основы объектно-ориентированного программирования
Запрет повторного объявления
Запрет повторного объявления
Обсуждение утверждений в начале лекции дало нам теоретическое понимание сути переопределений. Часть "Открыт" принципа Открыт-Закрыт дает возможность изменять компоненты потомков, но под контролем утверждений. Разрешены лишь те повторные объявления, для которых реализация согласуется со спецификацией, заданной предусловием и постусловиям оригинала.
В ряде случаев клиентам класса и клиентам классов потомков нужна гарантия, что компонент не только соблюдает спецификацию, но и пользуется в точности исходной реализацией. Достичь этого можно лишь "заморозив" его реализацию - полностью запретив переопределение компонента. Подобную возможность дает простая языковая конструкция:
frozen feature_name ... is... Остальные объявления - как обычно...
При таком описании ни один из потомков класса не может включать данный компонент в предложения redefine и undefine ни под своим, ни под любым другим именем (смена имен, конечно же, по-прежнему разрешена). Отложенный компонент по своей сути должен быть переопределен и, следовательно, не может быть заморожен.
- Опережающие объявления
- 3.9.1 Повторные и опущенные объявления
- ОБЪЯВЛЕНИЯ
- Модульные объявления
- Атаки повторного воспроизведения
- Запрет на редактирование реестра
- Я не использую NTFS, но очень нужно запретить пользователям запуск одной программы. Это реально?
- 4.14. Запрет и разрешение хостов
- 10.5.1. Запрет доступа реальным пользователям
- Объявления
- A8.3. Объявления структур и объединений
- П2.4.1. Запрет доступа к сайту (или к списку сайтов)