Объектно-ориентированный дизайн - Object-oriented design

Объектно-ориентированный дизайн это процесс планирования система взаимодействующих объектов с целью решения программной проблемы. Это один из подходов к разработка программного обеспечения.

Обзор

An объект содержит инкапсулированный данные и процедуры, сгруппированные вместе для представления сущности. «Интерфейс объекта» определяет, как объект можно взаимодействовать с. Объектно-ориентированная программа описывается взаимодействием этих объектов. Объектно-ориентированный дизайн - это дисциплина определения объекты и их взаимодействие для решения проблемы, которая была выявлена ​​и задокументирована во время объектно-ориентированный анализ.

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

Темы объектно-ориентированного дизайна

Входные данные (источники) для объектно-ориентированного дизайна

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

Вот некоторые типичные входные артефакты для объектно-ориентированного дизайна:

  • Концептуальная модель: Результат объектно-ориентированного анализа, он фиксирует концепции в проблемная область. Концептуальная модель явно выбрана независимой от деталей реализации, таких как параллелизм или хранилище данных.
  • Пример использования: Описание последовательности событий, которые вместе взятые приводят к тому, что система делает что-то полезное. Каждый вариант использования предоставляет один или несколько сценарии которые передают, как система должна взаимодействовать с пользователями, называемыми акторами, для достижения конкретной бизнес-цели или функции. Действующими лицами вариантов использования могут быть конечные пользователи или другие системы. Во многих случаях варианты использования далее развиваются в диаграммы вариантов использования. Диаграммы вариантов использования используются для идентификации исполнителя (пользователей или других систем) и процессов, которые они выполняют.
  • Схема работы системы: Диаграммы системной последовательности (SSD) - это изображение, которое показывает для конкретного сценария варианта использования события, генерируемые внешними участниками, их порядок и возможные межсистемные события.
  • Пользовательский интерфейс документация (если применимо): документ, который показывает и описывает смотреть и чувствовать пользовательского интерфейса конечного продукта. Это не обязательно, но это помогает визуализировать конечный продукт и, следовательно, помогает дизайнеру.
  • Реляционная модель данных (если применимо): модель данных - это абстрактная модель, которая описывает, как данные представлены и используются. Если база данных объектов не используется, реляционная модель данных обычно должна быть создана до проектирования, поскольку выбранная для объектно-реляционное отображение является результатом процесса объектно-ориентированного проектирования. Однако можно разрабатывать реляционную модель данных и артефакты объектно-ориентированного проектирования параллельно, и рост артефакта может стимулировать доработку других артефактов.

Объектно-ориентированные концепции

Пять основных концепций объектно-ориентированного проектирования - это функции уровня реализации, встроенные в язык программирования. Эти функции часто называют этими общими именами:

  • Объект / Класс: Тесная связь или ассоциация структур данных с методами или функциями, которые работают с данными. Это называется учебный класс, или же объект (объект создается на основе класса). Каждый объект выполняет отдельную функцию. Он определяется своими свойствами, тем, что это такое и на что он способен. Объект может быть частью класса, который представляет собой набор похожих объектов.
  • Скрытие информации: Возможность защитить некоторые компоненты объекта от внешних сущностей. Это реализуется с помощью ключевых слов языка, позволяющих объявить переменную как частный или же защищенный к собственнику учебный класс.
  • Наследование: Способность к учебный класс для расширения или отмены функциональности другого учебный класс. Так называемой подкласс имеет целый раздел, который является производным (унаследованным) от суперкласс а затем у него есть собственный набор функций и данных.
  • Интерфейс (объектно-ориентированное программирование): Возможность отложить реализацию метод. Умение определять функции или же методы подписи без их выполнения.
  • Полиморфизм (конкретно, Подтип ): Возможность заменить объект с этими подобъекты. Способность объект-переменная содержать, не только это объект, но и все его подобъекты.

Концепции проектирования

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

Результат (результаты) объектно-ориентированного дизайна

Диаграмма последовательности показывает в виде параллельных вертикальных линий различные процессы или объекты, которые существуют одновременно, а в виде горизонтальных стрелок - сообщения, которыми они обмениваются, в том порядке, в котором они происходят.
  • Диаграмма классов: Диаграмма классов - это тип статической структуры UML диаграмма, которая описывает структуру системы, показывая классы системы, их атрибуты и отношения между классами. Сообщения и классы, идентифицированные посредством разработки диаграмм последовательностей, могут служить входными данными для автоматического создания глобальной диаграммы классов системы.

Некоторые принципы и стратегии дизайна

  • Внедрение зависимости: Основная идея состоит в том, что если объект зависит от наличия экземпляра какого-либо другого объекта, то необходимый объект «вводится» в зависимый объект; например, передача соединения с базой данных в качестве аргумента конструктору вместо его внутреннего создания.
  • Принцип ациклических зависимостей: График зависимостей пакетов или компонентов (степень детализации зависит от объема работ одного разработчика) не должен иметь циклов. Это также называется наличием ориентированный ациклический граф.[2] Например, пакет C зависит от пакета B, который зависит от пакета A. Если пакет A также зависит от пакета C, то у вас будет цикл.
  • Принцип многократного использования композитов: Предпочитайте полиморфную композицию объектов наследованию.[1]

Смотрите также

Рекомендации

  1. ^ а б Паттерны проектирования: элементы объектно-ориентированного программного обеспечения многократного использования. Эддисон-Уэсли. 1995 г. ISBN  0-201-63361-2.
  2. ^ «Что такое объектно-ориентированный дизайн?». Наставник объекта. Архивировано из оригинал на 2007-06-30. Получено 2007-07-03.

внешняя ссылка