Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Полиморфизм — это способность скрывать множество различ­ных реализаций под единственным общим интерфейсом




Объект определяется как осязаемая сущность — предмет или явление, имеющие четко определяемое пове­дение. Объектможет представлять собой объект реального мира или прог­раммной системы (архитектурный объект). Любой объект обла­дает состоянием (state), поведением (behavior) и индивидуальностью (identity).

Тема 2.5 Объектно-ориентированные методы проектирования ПО.

Концептуальной основой объектно-ориентированного под­хода является объектная модель. Основными принципами ее построения являются:

- абстрагирование (abstraction);

- инкапсуляция (encapsulation);

- модульность (modularity);

- иерархия (hierarchy).

 

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

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

Модульность — это свойство системы, связанное с возмож­ностью ее декомпозиции на ряд внутренне сильно сцепленных, но внешне слабо связанных между собой подсистем (модулей). Модульность снижает сложность системы, позволяя выпол­нять независимую разработку отдельных модулей. Инкапсуляция и модульность создают барьеры между абстракциями.

Иерархия — это ранжированная или упорядоченная система абстракций, расположение их по уровням. Основными видами ие­рархических структур применительно к сложным системам явля­ются структура классов (иерархия по номенклатуре) и структура объектов (иерархия по составу).

К основным понятиям объектно-ориентированного подхода относятся:

- объект;

- класс;

- атрибут;

- операция;

- полиморфизм (интерфейс);

- компонент;

- связи.

Состояние объекта — одно из возможных условий, в которых он может существовать, оно изменяется со временем. Состояние объекта характеризуется перечнем всех возможных (статических) свойств данного объекта и текущими значениями (динамически­ми) каждого из этих свойств. Состояние объекта определяется значениями его свойств (атрибутов) и связями с другими объек­тами.

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

Каждый объект обладает уникальной индивидуальностью. Ин­дивидуальность - это свойства объекта, отличающие его от всех других объектов.

Структура и поведение схожих объектов определяют общий для них класс. Класс — это множество объектов, связанных общностью свойств, поведения, связей. Класс инкапсулирует (объединяет) в себе данные (атрибуты) и поведение (операции). Класс является абстрактным определением объекта. Любой объект является экземпляром (instance) класса. Опре­деление классов и объектов - одна из самых сложных задач объ­ектно-ориентированного проектирования.

Атрибут — поименованное свойство класса, определяющее диа­пазон допустимых значений, которые могут принимать экземпля­ры этого свойства.

Атрибуты могут быть:

- Public (общий, открытый). Это значение видимости предпо­лагает, что атрибут будет виден всеми остальными классами. Лю­бой класс может просмотреть или изменить значение атрибута. В соответствии с нотацией UML обще­му атрибуту предшествует знак «+»;

- Private (закрытый, секретный). Соответствующий атрибут не ' виден никаким другим классом. Закрытый атрибут обозначается знаком «-» в соответствии с нотацией UML.

- Protected (защищенный). Такой атрибут доступен только само­му классу и его потомкам в иерархии наследования.

Нотация UML для защищенного атрибута — это знак «#».

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

Операции отражают поведение объекта. Операции могут быть двух видов: операция-запрос и операция-команда. Операция-запрос не изменяет состояния объекта. Операция-команда может изменить состояние объекта. Результат операции зависит от текущего состояния объекта.

Как правило, в объектно-ориентированных язы­ках программирования операции, выполняемые над данным объ­ектом, называются методами и являются составной частью опре­деления класса.

Операции реализуют связанное с классом поведение (иначе говоря, реализуют обязанности класса — responsibilities). Обязанности класса делятся на две категории.

Знание (определяется атрибутами класса):

- наличие информации о данных или вычисляемых величи­нах;

- наличие информации о связанных объектах.
Действие (определяется операциями класса):

- выполнение некоторых действий самим объектом;

- инициация действий других объектов;

- координация действий других объектов.

Операция включает три части — имя, параметры и тип возвра­щаемого значения. Параметры — это аргументы, получаемые операцией «на входе». Тип возвращаемого значения относится к результату действия операции.

Существуют четыре различных типа операций.

- Операции реализации (implementor operations) реализуют неко­торые функции (процедуры). Такие операции выявляются путем анализа диаграмм взаимодействия UML.

- Операции управления (manager operations) управляют созда­нием и уничтожением объектов. В эту категорию попадают конструкторы и деструкторы классов.

- Операции доступа (access operations). Атрибуты обычно бывают закрытыми или защищенными. Тем не менее, другие классы иногда должны просматривать или изменять их значения.

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

Понятие полиморфизма может быть интерпретировано, как способность класса принадлежать более чем одному типу.

Интерфейс — совокупность операций, определяющих набор услуг класса или компонента. Интерфейс не определяет внутреннюю структуру, все его операции имеют открытую видимость

Полиморфизм тесно связан с наследованием. Наследование означает построение новых классов на основе существующих с возможностью добавления или переопределения свойств (атри­бутов) и поведения (операций).

Компонент относительно независимая и замещаемая часть системы, выполняющая четко определенную функцию в заданной архитектуре. Компонент представляет собой физи­ческую реализацию проектной абстракции и может быть:

- компонентом исходного кода;

- компонентом времени выполнения (ran time);

- исполняемым компонентом.

Компонент обеспечивает физическую реализацию набора интерфейсов.

Между элементами объектной модели существуют различные виды связей. К основным типам связей относятся связи ассоциа­ции, зависимости и обобщения.

Ассоциация (association) это семантическая связь между классами. Ее изображают на диаграмме классов в виде обыкно­венной линии. Ассоциация отражает структурные свя­зи между объектами различных классов.

Ассоциация

Агрегация (aggregation) представляет собой форму ассоциации — более сильный тип связи между целым объектом и его частями.

Мощность (multiplicity) показывает, как много объектов участ­вует в связи.

 

Мощность — это число объектов одного класса, связанных с одним объектом другого класса. Для каждой связи можно обозначить два показателя мощности — по одному на каждом конце связи.

В языке UML приняты следующие нотации для обозначения мощности.




Поделиться с друзьями:


Дата добавления: 2015-04-30; Просмотров: 647; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.011 сек.