Вам бонус- начислено 1 монета за дневную активность. Сейчас у вас 1 монета

Диаграмма классов (class diagram) PHP применяемые в ООП кратко

Лекция



Привет, сегодня поговорим про диаграмма классов, обещаю рассказать все что знаю. Для того чтобы лучше понимать что такое диаграмма классов, class diagram, композиция, агрегация, наслеование, генерализация, обобщение, ассоциация, различие между агрегацией и композицией , настоятельно рекомендую прочитать все из категории Выполнение скриптов на стороне сервера PHP (LAMP) NodeJS (Backend) .

UML (Unified Modeling Language) - унифицированный язык моделирования – это язык графического описания для объектного моделирования в области разработки программного обеспечения. UML является языком широкого профиля, это открытый стандарт, использующий графические обозначения для создания абстрактной модели системы, называемой UML моделью. UML был создан для определения, визуализации, проектирования и документирования в основном программных систем.

Использование UML не ограничивается моделированием программного обеспечения. Его также используют для моделирования бизнес-процессов, системного проектирования и отображения организационных структур.

РАЗНОВИДНОСТИ

Существует 13 официальных диаграмм UML 2.0, каждая из которых представляет собой различное представление разных аспектов системы:

  • Диаграмма активности;
  • диаграмма классов ;
  • Диаграмма связей;
  • Диаграмма компонентов;
  • Диаграмма составных структур;
  • Диаграмма развертывания;
  • Диаграмма обзора взаимодействий;
  • Диаграмма объектов;
  • Диаграмма пакетов;
  • Циклограмма;
  • Диаграмма машин состояния;
  • Диаграмма синхронизации;
  • Диаграмма прецедентов.

Но мы себе сразу выносить мозг не собираемся (мы будем делать это постепенно), так что сегодня поговорим только об одном виде диаграмм – диаграммах классов. И проиллюстрируем все примерами на PHP.

ДИАГРАММА КЛАССОВ

Диаграмма классов является типом диаграммы статической структуры. Она описывает структуру системы, показывая ее классы, их атрибуты и операторы, и также взаимосвязи этих классов. И так, начнем с примеров:

генерализация ( обобщение )

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

Графически генерализация представляется линией с пустым треугольником у супертипа.

Диаграмма:

Диаграмма классов (class diagram) PHP применяемые в ООП

На PHP это будет выглядеть, следующим образом:

 Диаграмма классов (class diagram) PHP применяемые в ООП

Все просто. Об этом говорит сайт https://intellect.icu . Идем дальше. И введем пару определений:

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

ассоциация – это семейство связей двух и более классов. Всего существует пять типов ассоциации. Но наиболее распространены два: двунаправленная и однонаправленная
ассоциации.

Рассмотрим частные варианты:

агрегация

Агрегация – «has a» (быть частью) случай ассоциации. Агрегация применяется когда один класс должен быть контейнером других классов. Причем время существования содержащихся классов никак не зависит от времени существования класса контейнера.

Т.е. в нашем примере в качестве контейнера выступает объект класса Model. И если в ходе выполнения программы он будет уничтожен, это никак не повлияет на объект класса DataBase.

Графически агрегация представляется пустым ромбиком на блоке класса и линией, идущей от этого ромбика к содержащемуся классу.

Диаграмма:

Диаграмма классов (class diagram) PHP применяемые в ООП

Код:

 Диаграмма классов (class diagram) PHP применяемые в ООП

композиция

Еще один «has a» случай ассоциации, но более строгий. В отличии от агрегации, композиция имеет жесткую зависимость времени существования экземпляров класса контейнера и экземпляров содержащихся классов. Если контейнер будет уничтожен, то все его содержимое будет уничтожено также.

Графически представляется как и агрегация, но с закрашенным ромбиком.

Диаграмма:

Диаграмма классов (class diagram) PHP применяемые в ООП

Код на PHP:

  Диаграмма классов (class diagram) PHP применяемые в ООП

различие между агрегацией и композицией

Различие между этими двумя видами ассоциации состоит в том, что композиция может быть частью одного и только одного целого, в то время как агрегация может быть частью нескольких объектов.

НАПРАВЛЕННАЯ АССОЦИАЦИЯ (MESSAGE / DIRECTED ASSOCIATION)

Сообщение используется когда один класс “общается” с другим при помощи инстанцирования.

Инстанцирование (англ. instantiation) — создание экземпляра класса. В отличие от слова «создание» применяется не к объекту, а к классу. То есть говорят создать экземпляр класса или инстанцировать класс. Порождающие паттерны используют полиморфное инстанцирование.

Экземпляр класса (англ. instance) — это описание конкретного объекта в памяти. Класс описывает свойства и методы, которые будет доступны у объекта, построенного по описанию, заложенному в класс. Экземпляры используют для представления конкретных сущностей реального мира.

Графически представляется в виде стрелочки направленой к “вызываемому” классу.

Диаграмма:

Диаграмма классов (class diagram) PHP применяемые в ООП

Пример на PHP:

 Диаграмма классов (class diagram) PHP применяемые в ООП

Так же направленная ассоциация может быть двухсторонней, например:

Диаграмма:

Диаграмма классов (class diagram) PHP применяемые в ООП

Код:

 Диаграмма классов (class diagram) PHP применяемые в ООП 

Вот, собственно и все. Может быть, я напишу еще несколько статей по проектированию, а пока жду ваших комментариев.

Все диаграммы были выполнены в программе StarUML. Очень легкая и простая программка, как раз то, что надо начинающему.

См также

Надеюсь, эта статья про диаграмма классов, была вам полезна, счастья и удачи в ваших начинаниях! Надеюсь, что теперь ты понял что такое диаграмма классов, class diagram, композиция, агрегация, наслеование, генерализация, обобщение, ассоциация, различие между агрегацией и композицией и для чего все это нужно, а если не понял, или есть замечания, то не стесняйся, пиши или спрашивай в комментариях, с удовольствием отвечу. Для того чтобы глубже понять настоятельно рекомендую изучить всю информацию из категории Выполнение скриптов на стороне сервера PHP (LAMP) NodeJS (Backend)

Из статьи мы узнали кратко, но содержательно про диаграмма классов
создано: 2015-05-08
обновлено: 2021-03-13
132827



Рейтиг 9 of 10. count vote: 2
Вы довольны ?:


Поделиться:

Найди готовое или заработай

С нашими удобными сервисами без комиссии*

Как это работает? | Узнать цену?

Найти исполнителя
$0 / весь год.
  • У вас есть задание, но нет времени его делать
  • Вы хотите найти профессионала для выплнения задания
  • Возможно примерение функции гаранта на сделку
  • Приорететная поддержка
  • идеально подходит для студентов, у которых нет времени для решения заданий
Готовое решение
$0 / весь год.
  • Вы можите продать(исполнителем) или купить(заказчиком) готовое решение
  • Вам предоставят готовое решение
  • Будет предоставлено в минимальные сроки т.к. задание уже готовое
  • Вы получите базовую гарантию 8 дней
  • Вы можете заработать на материалах
  • подходит как для студентов так и для преподавателей
Я исполнитель
$0 / весь год.
  • Вы профессионал своего дела
  • У вас есть опыт и желание зарабатывать
  • Вы хотите помочь в решении задач или написании работ
  • Возможно примерение функции гаранта на сделку
  • подходит для опытных студентов так и для преподавателей



Комментарии


Оставить комментарий
Если у вас есть какое-либо предложение, идея, благодарность или комментарий, не стесняйтесь писать. Мы очень ценим отзывы и рады услышать ваше мнение.
To reply

Выполнение скриптов на стороне сервера PHP (LAMP) NodeJS (Backend)

Термины: Выполнение скриптов на стороне сервера PHP (LAMP) NodeJS (Backend)