Как создавать эффективный класс
Как создавать эффективный класс
Рассмотрим вначале эффективные классы. Что нужно сделать для реализации АТД? Результирующий эффективный класс будет формироваться из элементов трех видов:
[x]. (E1) Спецификации АТД (множество функций с соответствующими аксиомами и предусловиями, описывающими их свойства).
[x]. (E2) Выбора представления.
[x]. (E3) Отображения из множества функций (E1) в представление (E2) в виде множества механизмов (или компонентов (features)), каждый из которых реализует одну из функций в терминах представления и при этом удовлетворяет аксиомам и предусловиям. Многие из этих компонентов будут методами - обычными процедурами, но некоторые могут появляться в качестве полей данных или "атрибутов" (это будет показано в следующих лекциях).
Например, для АТД STACK можно выбрать в качестве представления (шаг E2) решение, названное выше МАССИВ_ВВЕРХ, при котором каждый стек реализуется парой
<representation, count>,
где representation - это массив, а count - это целое число. При реализации функций (E3) у нас будут процедуры для функций put, remove, item, empty и new, выполняющие соответствующие действия. Например, функцию put можно реализовать программой вида
put (x: G)
is -- Втолкнуть x в стек.
-- (без проверки стека на возможное переполнение.)
do
count := count + 1
representation [count]:= x
end
Объединение элементов, полученных в пунктах (E1), (E2) и (E3), приведет к классу - модульной структуре объектной технологии.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
Реальный (RID) и эффективный (EUID) идентификаторы пользователя
Реальный (RID) и эффективный (EUID) идентификаторы пользователя Реальным идентификатором пользователя данного процесса является идентификатор пользователя, запустившего процесс. Эффективный идентификатор служит для определения прав доступа процесса к системным ресурсам
Реальный (RGID) и эффективный (EGID) идентификаторы группы
Реальный (RGID) и эффективный (EGID) идентификаторы группы Реальный идентификатор группы равен идентификатору первичной или текущей группы пользователя, запустившего процесс. Эффективный идентификатор служит для определения прав доступа к системным ресурсам по классу
1.20. Как создавать и редактировать темы для XP?
1.20. Как создавать и редактировать темы для XP? В состав ХР не входит никаких программ для работы с темами. Придется использовать
Эффективный поиск в Google
Эффективный поиск в Google Расширенный поиск (в зарубежных системах – Advanced Search) позволяет получить меньше ссылок, чем простой, но при этом их релевантность значительно повышается. В большинстве поисковых машин эта функция реализована. Для этого предназначена специальная
Эффективный показ товара зависит от правильного оформления страницы
Эффективный показ товара зависит от правильного оформления страницы Если посетитель не увидит ваше рекламное сообщение, значит вы напрасно трудились. Поэтому оформите свой значимый и убедительный текст таким образом, чтобы люди смогли его заметить и захотели
Эффективный маркетинг для малого и среднего бизнеса
Эффективный маркетинг для малого и среднего бизнеса Существует множество определений маркетинга Одно из самых простых: маркетинг – это привлечение и последующее удержание клиентов. Давайте примем за основу утверждение, что работа над увеличением всех коэффициентов,
Как составить эффективный заголовок для контекстной рекламы
Как составить эффективный заголовок для контекстной рекламы При составлении заголовка необходимо помнить, что в самых популярных системах контекстной рекламы Яндекс. Директ и Goog le Adwords существует ограничение на длину заголовка. Поэтому необходимо быть максимально
Эффективный поиск в Интернете
Эффективный поиск в Интернете Еще несколько лет назад, выбирая поисковик, большинство из нас смотрело на то, сколько сайтов в его базе. Считалось, что чем больше страниц проиндексировано, тем выше шанс что-нибудь найти в Интернете. Сегодня все изменилось. Всемирная сеть
Шаг 17 - Как НЕ создавать локальные переменные.
Шаг 17 - Как НЕ создавать локальные переменные. Что он сделал? Я не постигаю. Что нибудь особенное есть в этих словах: "Буря мглою…"? ___ Повезло ___ стрелял в него этот белогвардеец ___ и тем обеспечил бессмертие. М. Булгаков. Мастер и Маргарита. Лирическое отступление номер 2.
Восстанавливать или создавать?
Восстанавливать или создавать? Понятие "восстановление базы данных" при ее перезаписывании родилось в годы, когда дисковое пространство было дороже, чем прием на работу эксперта по реконструкции разрушенной базы данных или формирование группы персонала по данным для
Самый базовый класс MFC (класс CObject)
Самый базовый класс MFC (класс CObject) Подавляющее большинство классов библиотеки MFC наследовано от базового класса CObject, лежащего в основе всей иерархии классов этой библиотеки. Методы и элементы данных класса CObject представляют наиболее общие свойства наследованных из него
Архивный класс (класс CArchive)
Архивный класс (класс CArchive) Класс CArchive используется для сохранения и восстановления состояния объектов в файлах на диске. Перед использованием объекта класса CArchive он должен быть привязан к файлу – объекту класса CFile.Более подробно о процессе сохранения и восстановления
Класс CObject – основной класс MFC
Класс CObject – основной класс MFC Подавляющее большинство классов из библиотеки MFC наследуются от основного класса CObject. Практически все классы, которые используются в ваших приложениях, например CView или CWinApp, унаследованы от класса CObject.Класс CObject обеспечивает наиболее общие
Воздухоочиститель с Bluetooth, особенно эффективный при аллергии Николай Маслухин
Воздухоочиститель с Bluetooth, особенно эффективный при аллергии Николай Маслухин Опубликовано 18 апреля 2014 Компания Honeywell выпустила в продажу новую модель воздухоочистителя HPA250B, который «заточен» специально для оказания эффективной помощи