КАТЕГОРИИ: Архитектура-(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; Просмотров: 738; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |