Книга: Основы объектно-ориентированного программирования
Категории функций
Категории функций
В начале этой лекции операции над типами были разделены на конструкторы, запросы и команды. В спецификации АТД для нового типа T, например для STACK [G] в нашем примере можно определить эту классификацию более строго. Эта классификация просто проверяет, где по отношению к стрелке расположен в сигнатуре каждой функции тип T:
В альтернативной терминологии эти три категории называются "конструктор", "аксессор" и "модификатор". Здесь мы придерживаемся терминов, более непосредственно связанных с интерпретацией функций АТД как моделей операций над программными объектами. |
[x]. Функция, в сигнатуре которой T появляется лишь справа от стрелки, например new, является функцией-конструктором. Она моделирует операцию, создающую экземпляры T из экземпляров других типов или вообще не использующую аргументов, например как в случае константного конструктора new.
[x]. Такие функции как item и empty, у которых T появляется только слева от стрелки, являются функциями-запросами. Они моделируют операции, которые устанавливают свойства T, выраженные в терминах экземпляров других типов (в наших примерах - это BOOLEAN и параметр типа G).
[x]. Такие функции как put и remove, у которых T появляется с обеих сторон стрелки, являются функциями-командами. Они моделируют операции, которые по существующим экземплярам T и, возможно, экземплярам других типов выдают новые экземпляры типа T.
- Практическая работа 46. Выполнение расчетов с использованием Мастера функций
- Роль товарной категории и установление цены
- Приоритетные категории
- Базовые категории
- Уникальные категории
- Пересмотр функций клиента
- Вызовы функций
- Периодические и сезонные категории
- 1.2.1. Выбор вида туризма и ценовой категории будущего турпродукта
- Удобные категории
- 9.1.6.1. Использование функций POSIX: wait() и waitpid()
- Урок 6.4. Расчеты с использованием функций и имен ячеек