Объектно-ориентированный подход, Основные принципы - Объектно-ориентированный подход и диаграммы классов в UML
Основные принципы
Первая и главная идея, лежащая в основе объектно-ориентированного подхода такова: программная система представляется в виде множества самостоятельных сущностей (объектов), взаимодействующих друг с другом. Каждая сущность сама отвечает за хранение информации, необходимой для ее жизни, и, кроме того, она имеет (реализует) свое собственное поведение.
Представим себе систему, состоящую из семьи (отец, ребенок, мать и т. д.) и квартиры (помещения, мебель, техника). Было бы логично выделить в этой системе следующие категории сущностей: человек, предмет мебели, прибор, помещение. Даже ребенок (человек) может включить телевизор (прибор), выбрать понравившийся ему канал, отрегулировать громкость. При этом вся внутренняя структура телевизора от него скрыта: все детали помещены в ящик, снаружи которого есть только органы управления и экран. Ясно, что для правильной работы телевизора состояние внутренних деталей не менее (а возможно даже более) важно, чем состояние ручки изменения громкости. Но мало кто обращает на это внимание: весь внутренний мир телевизора помещен в некоторую оболочку, содержимым которой ведает только телевизор. Так мы замечаем в окружающем мире то, что называется инкапсуляцией - один из основных принципов объектно-ориентированного подхода.
Инкапсуляция - это принцип, заключающийся в построении оболочки вокруг некоторого набора данных и кода, обрабатывающего эти данные.
В случае телевизора можно сказать, что он инкапсулирует свои управляющие устройства, а также радиодетали, обеспечивающие его работу.
При этом запрещается прямой доступ к данным извне. Некоторый внешний объект может повлиять на инкапсулируемые данные только так, как позволяет объект, этими данными владеющий. В примере с телевизором ребенок может изменять выбранный канал, громкость, яркость (с помощью ручек управления), но не может менять напряжение на участках электрической цепи.
Для описания следующего принципа, лежащего в основе ООП, надо определить, что такое класс.
Как уже говорилось, разрабатываемая система представляется в виде набора объектов. В частности, объектами являются "Телевизор Горизонт-ТЦ375И No. 1234567", "Телевизор Янтарь No. 7654321". В некоторый момент бывает удобно сослаться не на конкретный телевизор, а на все телевизоры, независимо от их конкретной модели, года выпуска и серийного номера. В этом случае нам поможет понятие класса.
Класс - это группа сущностей (объектов), обладающих сходными свойствами, а именно, данными и поведением [4].
В дальнейшем отдельного представителя некоторого класса будем называть объектом класса или просто объектом.
Под поведением объекта в UML понимаются любые правила взаимодействия объекта с внешним миром и с данными самого объекта.
В нашем примере можно выделить следующие классы и их представителей:
Класс
Представители
Человек
Михаил Сергеевич, Раиса Максимовна, Петя
Помещение
Гостиная, спальня, кабинет, кухня, ванная, туалет, балкон, кладовка
Прибор
Телевизор Янтарь No. 7654321, утюг, пылесос, плита, холодильник, компьютер, водопроводный кран, раковина
Для того чтобы как можно более гибко разделить сущности на классы и предоставить возможность в разное время смотреть на одну и ту же сущность на разном уровне абстракции, было введено понятие наследования.
Наследование - это отношение типа "является разновидностью". В контексте рассматриваемого примера можно сказать, что Электроприбор "является разновидностью" Прибора, а Телевизор "является разновидностью" Устройства Отображения. Фактически, мы говорим, что один класс является наследником другого, если класс имеет все те свойства, что и предок, плюс еще некоторые дополнительные.
В случае с приборами из нашего примера можно построить такую иерархию наследования:
Предок
Потомки
Прибор
Электроприбор, сантехнический прибор
Электроприбор
Нагревательный прибор, устройство отображения, звуковоспроизводящий прибор
Устройство отображения
Телевизор, монитор
Третий принцип, лежащий в основании ООП, - полиморфизм - касается аспектов определения поведения объектов классов и распространения поведения вдоль иерархии наследования от предков к потомкам.
В UML для описания полиморфизма вводятся понятия операции и метода. У классов есть операции, которые определяют его поведение. В некотором смысле операция - это набор общих сведений о поведении класса: детали реализации никак не специфицированы операцией, но некоторый комментарий по поводу реализации может быть дан в неформальном виде, например, на естественном языке. При этом каждый потомок класса может предоставить метод, реализующий любую унаследованную операцию, отличный от соответствующего метода предка. Подчеркнем, что операция - это лишь описание какой-либо черты поведения объекта, а метод - уже конкретная реализация. Операции обязательно наследуются, т. е. распространяются вдоль иерархии без каких-либо изменений, а методы могут перекрываться потомками для реализации конкретных деталей поведения, присущих объектам класса-потомка.
Возвращаясь к приведенному примеру, можно сказать, что класс Устройство Отображения имеет операцию Принять Сигнал, которая лишь обозначает возможность получения объектом класса Устройство Отображения (или производного от него) некоторого сигнала извне. Вместе с тем у класса Телевизор будет метод Принять Сигнал, принимающий сигнал с антенного кабеля, а у класса Монитор будет метод Принять Сигнал, принимающий сигнал от схемы видеоадаптера.
Еще один принцип ООП - это модульность [4], и это означает, что вся система должна быть разделена на части, называемые модулями. Это деление более крупное, чем разбиение на классы - модули должны их в себе содержать.
Похожие статьи
-
Утилиты, Объект - Объектно-ориентированный подход и диаграммы классов в UML
В некоторых случаях при описании классов приходится часто пользоваться некоторыми глобальными функциями и переменными. Поэтому для удобства...
-
Класс ассоциации, Агрегирование - Объектно-ориентированный подход и диаграммы классов в UML
Такой класс является обычным классом, присоединенным пунктирной линией к ассоциации. Его имя должно совпадать с именем ассоциации. Содержащаяся в нем...
-
Стадии разработки ПО - Объектно-ориентированный подход и диаграммы классов в UML
В [4] так определяются этапы объектно-ориентированного подхода к разработке ПО: Объектно-ориентированный анализ (analysis) - способ анализа, изучающий...
-
Параметризованные классы (шаблоны) - Объектно-ориентированный подход и диаграммы классов в UML
В некоторых случаях в модели необходимы классы со схожей структурой, которые отличаются некоторыми параметрами. Например, имеется описание нескольких...
-
Атрибут - Объектно-ориентированный подход и диаграммы классов в UML
Атрибут (attribute) - это инкапсулируемый элемент данных класса, т. е. элемент данных, который содержится в объекте, принадлежащем описываемому классу. У...
-
Операция - Объектно-ориентированный подход и диаграммы классов в UML
Операция (operation) - это сущность, определяющая некоторое действие, которое может быть выполнено представителем класса. У операции есть имя и список...
-
Введение - Объектно-ориентированный подход и диаграммы классов в UML
Психологи уже давно показали, что средний человек может одновременно воспринимать адекватно в пределах десятка единиц информации. Таким образом, при...
-
Ассоциация, Бинарная ассоциация - Объектно-ориентированный подход и диаграммы классов в UML
Ассоциация определяет некоторую связь между классами. Когда в системе будут созданы представители ассоциированных классов, они будут связаны так, как...
-
Заключение - Объектно-ориентированный подход и диаграммы классов в UML
В заключение скажем несколько слов о применении модели классов UML. Особое место этой модели среди других моделей UML определяется тем, что основная цель...
-
Зависимость - Объектно-ориентированный подход и диаграммы классов в UML
В некоторых случаях два и более элемента модели могут быть семантически связаны. Например, класс A использует методы класса B. Тогда при изменении класса...
-
Наследование - Объектно-ориентированный подход и диаграммы классов в UML
Наследование - это отношение типа общее-частное между элементами модели. Наследование пакетов означает, что в пакете-наследнике все сущности...
-
Тема: "Основные устройства ЭВМ, их функции и взаимосвязь в процессе работы. Магистрально - модульный принцип построения ПЭВМ" Цель урока: Объяснить...
-
На сегодняшний день не существует единой классификации методов Интернет-исследований. Во многом это связано с тем, что данная сфера только начинает...
-
Основные принципы построения САПР - Состав систем автоматизированного проектирования
Разработка САПР представляет собой крупную научно-техническую проблему, а ее внедрение требует значительных капиталовложений. Накопленный опыт позволяет...
-
Диаграмма классов, Разработка пользовательского интерфейса - Основы технологии программирования
На основе построенных диаграмм взаимодействия и переходов состояний можно построить диаграмму классов информационной системы. Рис. 5 Диаграмма классов...
-
Каждая диаграмма состояний в UML описывает все возможные состояния одного экземпляра определенного класса и возможные последовательности его переходов из...
-
ER - диаграмма базы данных была представлена на рис. 2. Рис.2. ER-диаграмма базы данных. Таблица admin - содержит два столбца login и password которые...
-
Комплексный подход к обеспечению информационной безопасности, Основные понятия - Защита информации
Основные понятия Под информацией, применительно к задаче ее защиты понимается сведения о лицах, предметах, фактах, событиях явлениях и процессах...
-
Объектно - ориентированное программирование - Модульное и объектно-ориентированное программирование
Объектно-ориентированное программирование является в настоящее время наиболее популярной технологией программирования. Объектно-ориентированными языками...
-
Построение ER диаграмм - Модернизация структуры базы данных на основе анализа требований предприятия
При построении моделей информационных систем важнейшей методикой является ER-моделирование или построение диаграмм сущность-связь. Сущность представляет...
-
1. Провести обзор методов автоматического построения профиля нормального поведения веб-приложения. 2. Сформулировать требования к методу, провести...
-
Анализ принципа работы БП адаптера связи ОП - Работка буферной памяти адаптера связи
Буферная память этопамять для промежуточного хранения данных. Применяется при обмене данными между двумя устройствами, обладающими различной скоростью...
-
В программе присутствуют следующие основные модули: - PlatformManager - DeviceManager - ScenariosManager - ScenarioEngine - ExportManager - ImportManager...
-
Интерфейсы систем управления. Классификация, основные характеристики интерфейсов. Системные (внутримашинные) интерфейсы. Интерфейсы персональных...
-
При внедрении СЭД необходимо придерживаться следующих основных принципов: *активное участие высшего руководства Заказчика в решении организационных...
-
Кодирование цвета Кодируется цвет графических изображений с помощью бит. Количество бит, с помощью которых закодирован цвет называют битовой глубиной...
-
Обозначенные условия определяют работу по внедрению многопоточных средств в модели параллельного программирования С общей памятью с использованием...
-
Проведенный анализ причинно-следственной природы информационных рисков, позволяет определить сущность управления информационными рисками. Она заключается...
-
Технологии объектного связывания данных - Теоретические основы информационных технологий
Унификация взаимодействия прикладных компонентов с ядром информационных систем в виде SQL-серверов, наработанная для клиент-серверных систем, позволила...
-
Цель Работы - изучить приемы создания и использования шаблонов классов. - Теоретические сведения Достаточно часто встречаются классы, объекты которых...
-
Цель Работы - изучить основные способы работы с пользовательским типом данных "класс", его объектами, методами и способы доступа к ним. - Теоретические...
-
Теоретические аспекты СУБД, Основные понятия баз данных - Виды и возможности СУБД
Основные понятия баз данных В настоящее время жизнь человека настолько насыщена различного рода информацией, что для ее обработки требуется создание...
-
В ходе разработки программы было использовано программное обеспечение Microsoft® Windows® "Подключение к удаленному рабочему столу" для извлечения...
-
Принцип реализации СЛАУ на кластере - Администрирование параллельных процессов
Метод Гаусса - широко известный прямой алгоритм решения систем линейных уравнений, для которых матрицы коэффициентов являются плотными. Если система...
-
Существующие принципы администрирования Кластер -- группа компьютеров, объединенных высокоскоростными каналами связи, представляющая с точки зрения...
-
Принципы SOLID - Программирование на языке C++
SOLID - мнемонический акроним, введенный Майклом Фэзерсом ( Michael Feathers ) для первых пяти принципов, названных Робертом Мартином в начале 2000-х,...
-
UML - унифицированный язык моделирования, призванный упростить построение больших информационных систем. Состоит из диаграмм, связей и сущностей....
-
Основные понятия баз данных. Цели использования баз данных - Разработка базы данных
В широком смысле слова база данных (БД) - это совокупность сведений о конкретных объектах реального мира в какой-либо предметной области. Для удобной...
-
Основные требования и характеристики современных и применение технических средств АИС Автоматизированная информационная система (АИС) представляет собой...
-
Предложенный подход к решению задач исследования Используя в качестве основы присутствующее в наличии программное обеспечение, которое применимо к...
Объектно-ориентированный подход, Основные принципы - Объектно-ориентированный подход и диаграммы классов в UML