Принципы объектно-ориентированного представления программных систем
Автор: Пользователь скрыл имя, 05 Сентября 2011 в 18:58, творческая работа
Описание работы
Создавая понятие в интересах какой-либо задачи, мы отвлекаемся (абстрагируемся) от несущественных характеристик конкретных объектов, определяя только существенные характеристики
Другая разновидность иерархической организации —
«part of»-иерархическая структура — базируется на отношении агрегации.
Агрегация не является понятием, уникальным для объектно-ориентированных систем. Например, любой язык программирования, разрешающий структуры типа «запись», поддерживает агрегацию.
И все же агрегация особенно полезна в сочетании с наследованием:
агрегация обеспечивает физическую группировку логически связанной структуры;
наследование позволяет легко и многократно использовать эти общие группы в других абстракциях.
Объекты
Объект— это конкретное представление абстракции. Объект обладает индивидуальностью, состоянием и поведением. Структура и поведение подобных объектов определены в их общем классе. Термины «экземпляр класса» и «объект» взаимозаменяемы.
Индивидуальность—это характеристика объекта, которая отличает его от всех других объектов.
Состояниеобъекта характеризуется перечнем всех свойств объекта и текущими значениями каждого из этих свойств
Поведениехарактеризует то, как объект воздействует на другие объекты (или подвергается воздействию) в терминах изменений его состояния и передачи сообщений. Поведение объекта является функцией как его состояния, так и выполняемых им операций Говорят, что состояние объекта представляет суммарный результат его поведения.
Операция обозначает обслуживание, которое объект предлагает своим клиентам. Возможны пять видов операций клиента над объектом:
модификатор (изменяет состояние объекта);
селектор (дает доступ к состоянию, но не изменяет его);
итератор (доступ к содержанию объекта по частям, в строго определенном порядке);
конструктор (создает объект и инициализирует его состояние);
деструктор (разрушает объект и освобождает занимаемую им память).
В чистых объектно-ориентированных языках программирования операции могут объявляться только как методы — элементы классов, экземплярами которых являются объекты
В общем случае все методы и свободные подпрограммы, ассоциированные с конкретным объектом, образуют его протокол. Таким образом, протокол определяет оболочку допустимого поведения объекта и поэтому заключает в себе цельное
(статическое и динамическое) представление объекта.
Большой протокол полезно разделять на логические группировкиповедения. Эти группировки, разделяющие пространство поведения объекта, обозначают роли, которые может играть объект. Принцип выделения ролей иллюстрирует рис.
С точки зрения внешней среды важное значение имеет такое понятие, как обязанности объекта. Обязанностиозначают обязательства объекта обеспечить определенное поведение. Обязанностями объекта являются все виды обслуживания, которые он предлагает клиентам. В мире объект играет определенные роли, выполняя свои обязанности.
наличие у объекта внутреннего состояния означает, что порядок выполнения им операций очень важен. Иначе говоря, объект может представляться как независимый автомат. По аналогии с автоматами можновыделять активные и пассивныеобъекты