использовать и во многих других областях.
Данная лекция в большей степени посвящена моделированию, нежели реализации в строгом смысле этого термина. В ней показано, как можно использовать объектные структуры для построения реалистичных и полезных операционных описаний различного вида систем.
В процессе выполнения ОО-система создает некоторое число объектов. Организация этих объектов и отношения между ними определяют конструкцию времени выполнения. Рассмотрим свойства объектов.
Что такое объект?
Прежде всего, необходимо напомнить смысл термина 'объект'. Полная ясность была внесена в предыдущей лекции в виде строгого определения (Определение и объективное правило, см. лекцию 7):
Определение: объект
Объект - это экземпляр некоторого класса
Во время выполнения программная система, содержащая класс
Это официальное определение в мире ОО-ПО. Но в повседневном языке термин 'объект' имеет гораздо более широкий смысл. Любая программная система связана с определенной внешней системой, которая может содержать 'объекты': точки, линии, поверхности и тела в графической системе; сотрудников и их оклады в системе расчета заработной платы и т.д. В таких ситуациях, как правило, реальным объектам соответствуют программные объекты. Примером может служить класс
Хорошим следствием дуализма слова 'объект' является естественность и мощь ОО-метода, применяемого для целей моделирования реальных систем. Это уже отмечалось при рассмотрении принципа Прямого Отображения (
Но не стоит переоценивать 'реальность' слова 'объект'. В науке и технике существует большой риск в заимствовании слов естественного языка и придания им специального смысла. Термин 'объект' настолько перегружен повседневным смыслом, что техническое его использование может стать источником недоразумений. В частности:
[x]. Не все классы соответствуют типам проблемной области. Многие классы, введенные в интересах проектирования и реализации, не имеют двойников в моделируемой системе. Именно эти классы на практике могут иметь наибольшее значение и именно их труднее всего спроектировать.
[x]. Некоторые концепции проблемной области естественно приводят к классам, хотя в проблемной области не существует реальных объектов, которые можно было бы поставить в соответствие экземплярам этих классов. Примерами могут быть класс
Когда слово 'объект' используется в этой книге, то из контекста ясно, в общем или техническом смысле используется этот термин. В тех случаях, когда эту разницу необходимо подчеркнуть, используется уточнение - программный объект или внешний объект.
Базовая форма
Программный объект довольно простое существо, если известен класс, которому он принадлежит.
Пусть O - объект. По определению он является экземпляром некоторого класса. Точнее, он является прямым экземпляром (direct instance) только одного класса, например
| С учетом наследования O будет тогда косвенным экземпляром других классов, - предков |
Класс
Часть компонентов
Рассмотрим класс
class POINT feature
x, y: REAL
... Объявления подпрограмм ...
end
Подпрограммы опущены, так как форма объектов полностью определяется атрибутами соответствующих классов. Данный класс имеет два атрибута
Рис. 8.1. Экземпляр класса POINT
