UML. Может ли подкласс границы действовать как контроллер?

Мне интересно, действует ли подкласс Boundary как контроллер?

Под подклассом, если вы имеете в виду вложенный класс, ответ таков: он может, но не может, на самом деле вложенный класс может иметь любую цель/роль, независимо от класса вложенности. Если вы имеете в виду наследующий класс, ответ, вероятно, нет, наследующий класс все еще является границей, в то же время он может быть и контроллером, но это не проясняет его цель/роль.

bruno 24.12.2020 20:21
Сила классов Java: сравнение с языком C
Сила классов Java: сравнение с языком C
Абстракция" - это процесс упрощения сложных сущностей или концепций реального мира с целью их применения в форме программирования. В Java класс...
2
1
94
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Подкласс означает наследование. То есть подкласс наследуется от суперкласса. В этом отношении подкласс остается тем, чем является суперкласс. Но поскольку это что-то новое, оно может также унаследовать что-то еще. Таким образом, он может наследоваться от класса контроллера, что делает его гибридным. Имеет ли это значение, конечно, зависит. Парадигма MVC направлена ​​на отделение границ (представлений) от контроллеров. Объединение их еще раз — это просто противодействие этой парадигме.

1Я привык к MVC. См. Контроллер представления модели и объект управления границами

Суммируя

Нет, не может

Длинное объяснение

Архитектурный подход Entity-Control-Boundary направлен на создание дизайна на основе вариантов использования.

Роли и обязанности границ и элементов управления в этой модели несовместимы:

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

Это приводит к следующим ограничениям устойчивости:

  • Граница может быть связана с элементом управления, но не должна быть связана с сущностью.
  • Элемент управления может быть связан с элементом управления и сущностью.

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

Некоторый нюанс

Выше я предположил, что вы используете ECB, и написал «controller», но имел в виду «control» с его специфическим значением ECB.

Но вы могли бы использовать «контроллер» специально, чтобы сослаться на более общую ответственность класса (терминология дизайн, основанный на ответственности). В этом понимании контроллер просто координирует другие классы, не принимая во внимание более крупные архитектурные компоненты. Можно иметь граничный контроллер (то есть граничный класс, такой как контроллер диалогового окна), который координирует другие граничные классы (например, диалоговые текстовые поля и кнопки) независимо от какой-либо конкретной бизнес-логики. Это возможно, потому что понятие класса контроллера ортогонально классу ECB-Control.

Другие вопросы по теме