Что такое объекты?

Книга «UML Reference Manual» [Rumbaugh 1] определяет объект как «отдельную сущность с явно выраженными границами, которая инкапсулирует состояние и поведение; экземпляр класса».
Объект можно представить как единый пакет данных и функциональности. Как правило, единственный путь добраться до данных объекта – вызвать одну из предоставляемых им функций. Эти функции называются операциями (operations). Сокрытие данных объекта за уровнем операций известно как инкапсуляция (encapsulation), или сокрытие данных (dataahiding). Инкапсуляция в UML не является обязательной, поскольку некоторые ОО языки не нуждаются в ней. Однако сокрытие данных объекта за уровнем операций всегда считается хорошим ОО стилем.
Каждый объект является экземпляром некоторого класса, определяющего общий набор свойств (атрибутов и операций), присущих всем экземплярам этого класса. Идея классов и классификаторов на самом деле очень проста. Представим принтер типа «Epson Photo 1200». Он описывает свойства всех отдельных экземпляров данного класса, в том числе и конкретный «Epson Photo 1200 с/н 34120098», стоящий на нашем столе. Конкретный экземпляр класса называется объектом.
Немного поразмыслив над этим примером объекта принтера Epson, можно увидеть, что ему присущи определенные свойства, общие для всех объектов.
• Идентификатор (identity) – это определение существования и единственности объекта во времени и пространстве. Это то, что отличает его от всех остальных объектов. В нашем примере серийный номер может использоваться в качестве идентификатора для обозначения конкретного принтера на нашем столе и представления уникального идентификатора этого объекта. Серийный номер – замечательный способ идентифицировать физический объект. Для идентификации каждого программного объекта, принимающего участие в ОО анализе и проектировании, используется аналогичный принцип – идея объектной ссылки. Конечно, в реальности не у всех объектов есть серийный номер, но все равно они имеют уникальные идентификаторы: конкретные пространственные и временные координаты. Подобным образом в ОО программных системах каждый объект имеет некоторую объектную ссылку.
• Состояние (state) – определяется значениями атрибутов объекта и его отношениями с другими объектами в конкретный момент времени.
• Поведение (behavior) – принтер может выполнять конкретные действия:
switchOn() (включиться)
switchOff() (выключиться)
printDocument() (распечатать документ)
pageFeed() (заправить бумагу)
clearInkJetNozzles() (очистить форсунки)
changeInkCartridge() (заменить картридж)
Вызов операции объекта всегда приводит к изменению значений одного или более его атрибутов или отношений с другими объектами. Это может обусловить переход состояний – целенаправленный переход объекта из одного состояния в другое. Например, если в принтере закончились чернила (состояние объекта = OutOfBlackInk), вызов операции printDocument() приведет к сообщению об ошибке. Поэтому поведение printDocument() является зависимым от состояния.
Операция – это описание части поведения. Реализация этого поведения называется методом (method).

Запись опубликована в рубрике Компьютеры и интернет с метками . Добавьте в закладки постоянную ссылку.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

*

code