Объектно-ориентированное программирование.
В основе лежит представление предметной области в виде множества объектов, взаимодействующих между собой. Под объектом понимаетсямыслимая или реальная сущность, обладающая характерным поведением и отличительными характеристиками и являющаяся важной для данной предметной области. Характеристики объекта называют атрибутами. Значение атрибутовв данный момент времени определяет состояние объекта.
Объект может иметь определенный набор действий (операций), которые можно произвести над атрибутами объекта. Другими словами, набор операций определяет возможные варианты поведения объекта.
Множество объектов, которые имеют одинаковый набор атрибутов и операций, образуют класс объектов. Объединение объектов в класс позволяет рассматривать задачу в общем виде.
Модели предметной области разрабатываются в виде графических диаграмм. Наиболее широко используются диаграммы, определенные в языке UML (Unified Modeling Language). В UML определены 9 типов диаграмм, с помощью которых разрабатываются модели предметной области от логической модели до физической модели.
Коротко остановимся на трех диаграммах, которые используются при разработке практически каждой программы.
Диаграмма вариантов использования. Данная диаграмма определяет функциональность программы в терминах актеров и вариантов использования. Актер является инициатором выполнения варианта использования, а вариант использования определяет функциональность.
Рис.5
Пример диаграммы вариантов использования для предметной области “Экзамен по дисциплине “Информатика и программирование” приведен на Рис.5. Актером является Студент, варианты использования изображены в виде овалов. Основной вариант Вычислить итоговую оценку в обязательном порядке включает варианты Вычислить 10-ти бальную оценку и Вычислить 5-ти бальную оценку.Варианты использования, которые расширяют основной вариант и выполняются не всегда, а лишь при определенных условиях, помечаются стрелкой в обратном направлении и пометкой <<extended>>.
Диаграмма классов. Структурно программа представляет собой набор классов, находящихся между собой в определенных отношениях. Обозначение класса включает три секции, показанные на Рис.6.
Если класс не содержит атрибутов или операций – соответствующая секция остается не заполненной. Приведенная на Рис.6 диаграмма классов описывает предметную область “Экзамен по дисциплине “Информатика и программирование”.
При разработке программ вместо термина атрибут используют термин поле, а вместо термина операция – термин метод.
Отношения между классами будут рассмотрены в разделе, посвященном программированию с использованием определяемых в программе классов. Пока же ограничимся рассмотрением без излишней детализации основополагающего отношения – наследования.
Рис.6
Каждый класс может быть использован в качестве предка для определения класса-наследника. Класс–наследник имеет поля и методы, унаследованные от предка, и может определять свои собственные поля и методы, а при необходимости переопределять унаследованные поля и методы. Наследование позволяет сократить затраты на разработку программного кода за счет использования ранее разработанного и проверенного кода.
Диаграмма кооперации. Рассмотренная диаграмма классов определяет статическое представление предметной области и разрабатывается на уровне классов. Динамические свойства предметной области проявляются в выполнении конкретными объектами операций и изменении состояния. Поэтому диаграммы для отражения динамических свойств создаются на уровне объектов.
Следует помнить, что смысл понятия класс несколько отличается при составлении логической модели и физической модели. В первом случае класс играет роль классификатора при объединении существующих объектов в группу. Во втором случае разработчика программы рассматривает класс некий шаблон, определяющий правила, по которым программа создает конкретные экземпляры класса - объекты.
Диаграмма кооперации – одна из диаграмм для отражения динамических свойств. Данная диаграмма определяет взаимодействие между объектами путем передачи сообщений между ними. В ответ на полученное сообщение объект выполняет заданную операцию и, в общем случае, изменяет свое состояние. Изменение состояния объекта может повлечь за собой передачу сообщения другому объекту. Сообщение может передаваться сразу нескольким объектам. Объект, передавший сообщение, может дожидаться ответа или же продолжать работу.
В простейшем случае сообщение представляет собой вызов из объекта одного класса метода объекта другого класса и переход в состояние ожидания ответа, как показано на Рис.7.
В этом случае поля объекта напоминают данные в процедурно-ориентированном программировании, а методы – подпрограммы. Принципиальным отличием является то, что в процедурно-ориентированном программировании данные и подпрограммы могут существовать как самостоятельные сущности независимо друг от друга, а поля и методы объединены (инкапсулированы) в единый объект и раздельно друг от друга не существуют.
Основная цель диаграммы кооперации - показать какие операции объектов используются при реализации того или иного варианта использования. Поэтому диаграмм кооперации должно быть столько же, сколько вариантов использования определено в диаграмме вариантов использования.
Рис.8
Пример диаграммы кооперации для варианта использования Вычислить итоговую оценку приведен на Рис.8. Сплошной линией показана связь между объектами. Рядом с линией связи нанесена стрелка вызова метода. Стрелка направлена на объект, метод которого вызывается, а рядом со стрелкой указан вызываемый метод. Вызовы методов пронумерованы. Нумерация вызовов соответствует последовательности их выполнения. В данной диаграмме конкретное имя объекта не представляется логически важным, поэтому оно не указано.
Достоинства объектно-ориентированного программирования:
- отражение структуры предметной области в виде взаимосвязанных сущностей
- более простая модификация программ за счет наследования полей и методов и возможности изменять код базовых классов-предков без внесения изменений в код классов-наследников.
- поддержка создания программ с распределенной обработкой
Недостатки:
- меньшая предсказуемость поведения программы
- повышенные требования к ресурсам среды исполнения
Для разработки программ на основе объектно-ориентированного программирования используются языки Java, С#.
Отметим, что существуют языки, позволяющие использовать в одной программе сочетание обеих рассмотренных парадигм программированиям. К таким языкам относятся языки С++ и Object Pascal.
Дата добавления: 2019-02-08; просмотров: 605;