Для ограничения доступа клиентов к некоторой компоненте
class S2 feature
f ...
g ...
feature {A, B}
h ...
...
end
Компоненты
x.h
является допустимым только в исходных текстах классов
В особом случае, когда необходимо скрыть компонент
class S3 feature { }
i ...
end
В этом случае любой вызов
i (...)
в тексте подпрограммы класса
Возможность полного скрытия компонента от клиентов доступна во многих ОО-языках, а вот механизм селективного ограничения доступа, проиллюстрированный на примере
В примерах последующих лекций мы столкнемся с различными примерами селективного экспорта и рассмотрим его методологическую роль при разработке интерфейсов.
Стиль объявления скрытых компонент
Использованный выше стиль объявления скрытой компоненты
class S4 feature
exported ...
feature {}
secret ...
end
где
class S5 feature
... exported ...
feature {NONE}
... secret ...
end
Класс
"Внутренний" экспорт
Рассмотрим объявление класса
indexing
замечание: "Ошибочное объявление (объяснение см. ниже)"
class S6 feature
x: S6
my_routine is do ... print (x.secret) ... end
feature {NONE}
secret: INTEGER
end -- class S6
Наличие в объявлении класса атрибута
Есть простое решение: написать вместо feature
Необходимо отметить, что подобный прием необходим, только если в тексте класса присутствует квалифицированный вызов аналогичный
Собираем все вместе
После введения в базовые механизмы ОО-вычислений настало время ответить на вопрос, каким образом можно построить исполняемую систему на основе отдельных классов.
Общая относительность
Удивительно, но все приведенные до сих пор описания того, что происходит во время выполнения, были относительными. Результат выполнения подпрограммы всегда связан с текущим экземпляром, который в исходном тексте класса неизвестен. Можно попытаться понять действие вызова, только принимая во внимание цель этого вызова, например
p1.translate (u, v)
Вильям Л Саймон , Вильям Саймон , Наталья Владимировна Макеева , Нора Робертс , Юрий Викторович Щербатых
Зарубежная компьютерная, околокомпьютерная литература / ОС и Сети, интернет / Короткие любовные романы / Психология / Прочая справочная литература / Образование и наука / Книги по IT / Словари и Энциклопедии