В Enterprise Architect я модифицировал интерфейс, как обновлять реализующие классы?

Я создал интерфейс в модели класса. Этот интерфейс имеет два метода, A и B, и метод a принимает аргумент (a), и метод B не принимает аргумент (пока).
Кроме того, я создал класс, который реализует этот интерфейс, перекрывая оба метода.

после обсуждения метода модели B теперь также должен принимать параметр (b), поэтому я изменил интерфейс, чтобы отразить это изменение. Однако класс, реализующий этот интерфейс, не обновляется автоматически. Для одного класса можно добавить метод, повторно создав связь между интерфейсом, указав, какой метод должен быть реализован, и удалив эту связь снова. Затем старая сигнатура метода также должна быть удалена.
Это большая работа, если существует более одного класса, реализующего модифицированный интерфейс, не говоря уже об ошибках.

знает ли кто-нибудь, как сделать так, чтобы вся модель класса обновила этот тип зависимости?

26
задан Hennes
22.03.2023 13:44 Количество просмотров материала 2428
Распечатать страницу

2 ответа

Я тоже искал ответ на этот вопрос, но кроме вашего поста ничего не нашел. Я разместил вопрос на форуме EA.

Если это только для целей диаграммы, есть 1 возможный обходной путь (но немного неприятный):

  • добавьте свой интерфейс к диаграмме как (абстрактный) класс со стереотипом < >
  • добавить класс к схеме как класс с <> стереотип
  • добавить обобщение отношение класса к интерфейсу, не устанавливайте флажки в разделе переопределения и обновления
  • скрыть разъем
  • добавить реализация отношение класса к интерфейсу
  • щелкните правой кнопкой мыши класс > видимость функции > установите флажок Показать операции

в результате

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

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

2
отвечен dvekeman 2023-03-23 21:32

выберите класс, который вы хотите обновить, и нажмите клавишу Ctrl + Shift + o.

этой ссылке дает вам подробное объяснение.

в Enterprise Architect можно автоматически переопределять методы из родительских классов и реализованных интерфейсов.

выберите класс, который имеет Родительский или реализованный интерфейс и выберите пункт меню элемент | дополнительно | переопределяет и реализации.

в процентовке? Диалог операции / интерфейсы, проверьте операции/интерфейсы для автоматического переопределения и нажмите на кнопку ОК. Enterprise Architect создает эквивалентные определения функций в дочернем классе.

можно настроить Enterprise Architect для отображения этого диалогового окна при каждом добавлении соединителя обобщения или реализации между классами, а также просмотреть их возможные операции/интерфейсы для переопределения/реализации. Сделайте это на странице ссылки диалогового окна Параметры (выберите Пункт меню Сервис / Параметры / ссылки).

4
отвечен jharig23 2023-03-23 23:49

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх