ТЕМА 13. ОБЪЕКТНО-ОРИЕНТИРОВАННЫЙ ПОДХОД К ПРОЕКТИРОВАНИЮ ПО. Тема 13. Объектноориентированный подход к проектированию по
Скачать 13.96 Kb.
|
ТЕМА 13. ОБЪЕКТНО-ОРИЕНТИРОВАННЫЙ ПОДХОД К ПРОЕКТИРОВАНИЮ ПО Классические методы проектирования ориентированы на процедурную реализацию. Современное программное обеспечение разрабатывается на основе объектно-ориентированной технологии. Вместе с развитием объектно-ориентированного программирования стали развиваться и общие объектно-ориентированные методы разработки программного обеспечения. В течение последних нескольких лет при поддержке OMG (Object Management Group) специалистами ряда известных фирм разрабатывался Унифицированный Язык Моделирования (Unified Modeling Language - UML), который представляет объектно-ориентированный метод разработки программного обеспечения с поддержанием объектно-ориентированной реализации. Основные принципыПервая и главная идея, лежащая в основе объектно-ориентированного подхода, такова: система представляется в виде множества самостоятельных сущностей (объектов), взаимодействующих друг с другом. Объектно-ориентированное проектирование основано на принципах: инкапсуляции; абстрагирования; модульности; иерархической организации. Инкапсуляцияиабстракция– это взаимодополняющие понятия. Абстракциявыделяет внешнее поведение объекта, а инкапсуляциясодержит и скрывает реализацию, которая обеспечивает это поведение. Инкапсуляциядостигается с помощью информационной закрытости. Обычно скрываются структура объектов и реализация методов. Модульностьопределяет способность системы подвергаться декомпозиции на ряд связанных и слабосцепленных модулей. Иерархическаяорганизацияразмещает абстракции на различных уровнях системы. Основным элементом объектно-ориентированного подхода является объект. Объект обладает индивидуальностью, состоянием и поведением (рис. 24). Рис. № 24. Характеристики объектаИндивидуальность– характеристика объекта для идентификации. Состояние – перечень свойств и значений каждого свойства. Поведение – перечень действий и операций, выполняемых объектом. Поведение - это действия, которые определяют, как объект воздействует на другие объекты, каким воздействиям подвергается со стороны других объектов, как меняется сам и какие передает сообщения. Поведение – функция от состояния объекта и выполняемых им операций. Все операции можно поделить на следующие классы: изменение состояния объекта; доступ только к состоянию объекта, без изменения состояния; доступ к содержанию объекта; создание объекта и инициализация объекта; уничтожение объекта. Отношения между объектамиСуществует два вида отношений: связии агрегация. Объект сотрудничает с другими объектами через соединяющие их связи. Как участник связи объект играет роли актера, сервера, агента. Актервоздействует сам, но неподвержен воздействию. Сервериспользуется другим объектами. Агентможет воздействовать сам, и на него могут воздействовать другие объекты. На этапах проектирования и реализации с каждым объектом связывают понятие видимости. Различают четыре вида видимостимежду объектами: объект глобален для клиента; объект, как параметры операций клиента; объект – часть объекта клиента; объект – локальный объект. Агрегация – отношения объектов в иерархии «целое-часть». Агрегация означает физическое включение части в целое. Агрегация может обеспечить перемещение от целого к его частям. КлассыПонятие объекта тесно связано с понятием класса. Класс– это множество объектов с одинаковыми свойствами, операциями и отношениями. Объект – это экземпляр класса. Класс – абстракция существенных характеристик объекта. Класс - это совокупность внешней сущности и внутренней (интерфейс). Интерфейс открывает возможности класса, но скрывает структуру и поведение. Интерфейс включает перечень всех объявлений, применимых к экземплярам класса, объявления типов переменных, выражающих свойства и их значения. Интерфейс делится на три части: публичную (объявления этой части доступны всем классам); защищенную (объявления доступны самому классу, подклассам, друзьям); приватную (объявления доступны самому классу и друзьям). Между классами существует четыре вида отношений: ассоциация (фиксирует связи между экземплярами классов); зависимость (отображает влияние одного класса на другой); обобщение (супертип); целое-часть (подтип). Эти отношения поддерживаются большинством объектно- ориентированных языков программирования в виде таких отношений, как: ассоциация, наследование, агрегация, зависимость, конкретизация, метакласс, реализация. |