пользователей: 30398
предметов: 12406
вопросов: 234839
Конспект-online
РЕГИСТРАЦИЯ ЭКСКУРСИЯ

Классы, объекты, общая характеристика и отношения между классами и объектами в объектно-ориентированном проектировании. Проблемы классификации.

Основными единицами построения системы на этапе концептуализации, проектирования или программирования являются объекты или экземпляры, организованные в классы с общими свойствами. Эти свойства бывают трех видов.

·Атрибуты, такие как объем, положение или цвет, символизируют связи с другими объектами и состояние самого объекта.

·Процедуры или услуги, предоставляемые объектом, такие как перемещение или расширение. Их называют операциями или методами.

·Правила, которые устанавливают взаимосвязи свойств объекта или определяют условия его жизнеспособности. Их иногда называют инвариантами.

Строго говоря, методы являются функциями, которые реализуют операции, а операции — это абстрактные спецификации методов. В традиционном объектно-ориентированном программировании атрибуты не являются видимыми для других объектов.  Идея пакетирования функций с данными тесно связана с понятием типа данных в традиционных языках программирования, где 3 — это экземпляр “типа” integer, а целые числа характеризуются только одним атрибутом (их значением) и несколькими допустимыми арифметическими операциями. Действительные числа характеризуются похожими операциями, но реальное осуществление умножения для чисел с плавающей точкой совершенно отличается от способа реализации этой операции для целых чисел. Аналогично задавая параметры и методы, можно трактовать более сложные объекты, часто встречающиеся в моделях данных. В данном же контексте метод определяется как процедура или функция, которая изменяет состояние объекта или заставляет объект отправить сообщение. Описание или сигнатура метода называется операцией. Операции показывают, какие сообщения объект может успешно обрабатывать.

Класс, в смысле объектно-ориентированного программирования, — это совокупность объектов, которые имеют общие свойства и методы. Класс может рассматриваться как шаблон для построения экземпляров. Тип объекта — это спецификация класса, а класс — это реализация типа. Тип объекта отражает идею (содержание класса), а не коллекцию свойств, поэтому имеет уникальное название. Атрибуты и методы типа объекта часто рассматриваются как его свойства или обязанности . Атрибут представляет обязанность знания чего-либо, а метод — обязанность выполнения.

По мере возможности объекты должны основываться на реальных сущностях и понятиях приложения или предметной области. Объекты могут быть или классами, или экземплярами, хотя некоторые авторы и стандарты, такие как UML, используют термин объект как синоним слова экземпляр. В некоторых языках класс может быть экземпляром класса более высокого уровня или метакласса.

На уровне концептуального моделирования объекты (типы, классы или экземпляры) имеют уникальную идентичность на протяжении всей своей жизни. Это отличает объектно-ориентированные модели от, скажем, реляционных.

Структуры данных и элементы реализации метода объекта являются невидимыми для других объектов в системе. Единственный путь получения доступа к состоянию объекта — это передача сообщения, вызывающего один из его методов. Строго говоря, доступ к атрибутам осуществляется через методы, которые считывают и устанавливают их значения. Другими словами, атрибуты — это словарь, с помощью которого можно обсуждать видимое извне поведение объекта. Вообще говоря, в программировании это обеспечивает эквивалентность объектного и абстрактного типов данных. Однако для полного описания объекта необходимо также четко определить его интерфейс. Некоторые методы объекта могут быть скрыты за интерфейсом — это закрытые методы. Интерфейс лучше всего рассматривать как общедоступное описание обязанностей (responsibility) объекта. Атрибуты могут быть рассмотрены как обязанность знания, а операции — как обязанность действия. Другими словами, можно сказать, что общедоступный интерфейс определяет вопросы, которые можно задать объекту, и программы действия, которые можно ему предложить. Это представление очень удобно на этапе выделения требований и анализа систем.

Объекты общаются посредством передачи сообщений. Это, по большей части, исключает дублирование данных и гарантирует, что изменение структур данных и процедур, инкапсулированных в пределах объектов, не распространяет свое влияние на другие части системы. Сообщения реализуются как вызовы функций. Сообщения всегда возвращают данные, отправленные объектом. Объект может отправить сообщение другому объекту только в том случае, если в нем хранится идентичность другого объекта. Это может рассматриваться как недостаток объектно-ориентированного модельного представления, когда существует необходимость передачи сообщений многим объектам.

Трудность классификации обуславливается в основном широким выбором возможных равноправных решений.

Исторически сложились три основных подхода к классификации:

- классическое распределение по категориям;

- концептуальная кластеризация;

- теория прототипов.


28.01.2019; 15:56
хиты: 158
рейтинг:0
для добавления комментариев необходимо авторизироваться.
  Copyright © 2013-2024. All Rights Reserved. помощь