Диаграмма классов GOF для паттерна Builder противоречит соответствующей диаграмме последовательности

Диаграмма классов GOF для паттерна Builder противоречит соответствующей диаграмме последовательности
Диаграмма классов GOF для паттерна Builder противоречит соответствующей диаграмме последовательности

GOF предшествует UML

Он использует вариант OMT, нотацию, изобретенную J.Rumbaugh, до того, как она была объединена с UML:
  • Текущая терминология UML — «ассоциация». OMT провел тонкое различие между двунаправленными «ассоциациями» (см. сноску, Приложение B GOF) и однонаправленными «знакомствами» (реализованными со ссылкой). В современном UML и то, и другое будет ассоциациями. Последнее может быть выражено с помощью навигационных ассоциаций, хотя UML не зависит от реализации.
  • Более того, хотя OMT и более ранняя версия UML использовали белый ромб для представления отношений часть-целое, Сам Дж. Рамбо назвал эту общую агрегацию «моделирующим плацебо». Начиная с UML 2.0, UML сохранил белый ромб, но больше не определяет для него никакой семантики. Таким образом, белый ромб или не ромб в конечном итоге имеют одинаковую семантику в UML, и предпочтение следует отдавать более простой записи.

Белый ромб, так называемая разделяемая агрегация, не предполагает владения элементами на другом конце (ни в OMT, ни в UML): элементы могут прекрасно пережить свою совокупность. Ограничение жизненного цикла — это характеристика композиции (точнее, составной агрегации, предполагающей исключительное право собственности), которая представлена ​​черным ромбом.

Прикрепляю к посту несколько видео по теме:

Прикрепленное видео 1 - GoF паттерны

Прикрепленное видео 2 - 8. Поведенческие шаблоны

Прикрепленное видео 3 - Понятие паттерна проектирования. Курс "Шаблоны проектирования"


LetsCodeIt, 16 апреля 2023 г., 14:33

Похожие посты

Можно ли создать интерфейс интерфейсов?В чем разница между этими двумя диаграммами MVC?Избегайте использования паттерна посетителя в этом очень распространенном сценарииСоздание абстракции только для обработки исключений - паттерн или антипаттерн?Паттерн для базового класса для предварительной проверки и/или последующей обработки переопределенного метода производного класса?Есть ли у UML грамматика, которая соотносится с его диаграммами?Используют ли инженеры-программисты объектные модели, модели предметной области, схемы системной последовательности и операционные контракты?Головка стрелки для ответного сообщения в диаграмме последовательностей UMLКак я должен смоделировать действующих лиц в диаграмме сценария использования для платформы, которая позволяет пользователям как смотреть видео, так и создавать свои собственные каналы, как YouTube?Сопоставление диаграмм классов с исходным кодом