Базисная конструкция
Базисная конструкция
Простота типизации в ОО-подходе есть следствие простоты объектной вычислительной модели. Опуская детали, можно сказать, что при выполнении ОО-системы происходят события только одного рода - вызов компонента (feature call):
x.f (arg)
означающий выполнение операции f над объектом, присоединенным к x, с передачей аргумента arg (возможно несколько аргументов или ни одного вообще). Программисты Smalltalk говорят в этом случае о "передаче объекту x сообщения f с аргументом arg", но это - лишь отличие в терминологии, а потому оно несущественно.
То, что все основано на этой Базисной Конструкции (Basic Construct), объясняет частично ощущение красоты ОО-идей.
Из Базисной Конструкции следуют и те ненормальные ситуации, которые могут возникнуть в процессе выполнения:
Определение: нарушение типа
Нарушение типа в период выполнения или, для краткости, просто нарушение типа (type violation) возникает в момент вызова x.f (arg), где x присоединен к объекту OBJ, если либо:
[x]. не существует компонента, соответствующего f и применимого к OBJ,
[x]. такой компонент имеется, однако, аргумент arg для него недопустим.
Проблема типизации - избегать таких ситуаций:
Проблема типизации ОО-систем
Когда мы обнаруживаем, что при выполнении ОО-системы может произойти нарушение типа?
Ключевым является слово когда. Рано или поздно вы поймете, что имеет место нарушение типа. Например, попытка выполнить компонент "Пуск торпеды" для объекта "Служащий" не будет работать и при выполнении произойдет отказ. Однако возможно вы предпочитаете находить ошибки как можно раньше, а не позже.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
3. Оригинальная конструкция инфопродукта
3. Оригинальная конструкция инфопродукта Можно сделать оригинальный инфопродукт по конструкции. Например, в вашей нише все делают исключительно аудио– или видеокурсы. А вы сделайте, например, интеллект-карты, коучинговую программу, месячный тренинг. Найдите другой
R.16.3.4 Область видимости макроимен и конструкция #undef
R.16.3.4 Область видимости макроимен и конструкция #undef После появления макроопределения идентификатор из него считается определенным и остается в текущей области видимости (независимо от правил областей видимости в С++) до конца единицы трансляции или пока его определение
20.3.5. Конструкция системы управления задачами была плохо реализована
20.3.5. Конструкция системы управления задачами была плохо реализована Не считая возможности приостанавливать процессы (что само по себе является тривиальным дополнением к планировщику, который мог бы быть сделан довольно безопасно), управление задачами предусмотрено
Конструкция for-do
Конструкция for-do Синтаксис конструкции for-do для цикла с увеличением значения счетчика:for идентификатор_счетчика := начальное_значение to конечное_эначение do блок_кода;Синтаксис конструкции for-do для цикла с уменьшением значения счетчика:for идентификатор_счетчика :=
Конструкция while-do
Конструкция while-do Синтаксис конструкции while-do: while выражение do блок_кода;Выход из цикла while-do происходит в том случае, если выражение, расположенное между ключевыми словами while и do, дает значение False. Цикл может не выполниться ни одного
Конструкция repeat-until
Конструкция repeat-until Синтаксис конструкции repeat-until: repeat блок_кода until выражение;Выход из цикла repeat-until происходит в том случае, если выражение, расположенное после ключевого слова until, дает значение
Совет 42. Следите за тем, чтобы конструкция less<T> означала operator<
Совет 42. Следите за тем, чтобы конструкция less<T> означала operator< Допустим, объект класса Widget обладает атрибутами weight и maxSpeed:class Widget { public:size_t weight() const;size_t maxSpeed() const;}Будем считать, что естественная сортировка объектов Widget осуществляется по атрибуту weight, что отражено в
Множественный выбор: конструкция else-if
Множественный выбор: конструкция else-if Часто нам приходится осуществлять выбор более, чем из двух вариантов. Чтобы учесть это, мы можем расширить структуру if-else конструкцией else-if. Рассмотрим конкретный пример. Расценки, назначаемые за коммунальные услуги некоторыми
Витая конструкция
Витая конструкция Методы создания резных изделий из дерева разнообразны. Сейчас мы рассмотрим еще один метод, который позволяет создавать витые конструкции, наподобие той, что вы видели в комнате для курения кальянов в главе 5.На этот раз витая конструкция будет
Конструкция SELECT ... INTO
Конструкция SELECT ... INTO Конструкция SELECT ... INTO обычна для PSQL. Когда из таблицы запрашиваются значения, предложение INTO позволяет сохранить их в переменных - в локальных переменных или в выходных аргументах. В этой процедуре нет выходных параметров. Мы используем переменную ANY
Конструкция FOR SELECT ... DO
Конструкция FOR SELECT ... DO Для поиска множества строк в процедуре мы используем конструкцию FOR SELECT ... DO. Ее синтаксис:FOR<выражение-выбора>INTO <:переменная [, :переменная [, ...]] DO<составной-оператор>;<выражение-выбора> может быть любым запросом выбора, использующим
Конструкция flash-диска USB
Конструкция flash-диска USB Несмотря на разнообразие корпусов, все flash-диски USB устроены одинаково. Половинки корпуса часто соединены защелками и обычно легко разбираются. Исключение составляют водонепроницаемые или ультрамодные корпуса – для их вскрытия иногда приходится
Виды и конструкция карт памяти
Виды и конструкция карт памяти Многие компании время от времени предлагали пользователям разные конструкции карт памяти. За редкими исключениями все они несовместимы между собой по числу и расположению контактов и электрическим характеристикам. Flash-карты бывают двух
FANатичная конструкция: Как из корпуса сделать конфетку
FANатичная конструкция: Как из корпуса сделать конфетку Автор: Филипп КазаковНесколько месяцев назад я созрел-таки для серьезного мероприятия - замены корпуса компьютера. Как часто бывает, немедленной реализации задумки воспрепятствовала масса объективных