Наследование и моделирование зависимостей в UML - PullRequest
1 голос
/ 06 июля 2011

Я пытаюсь смоделировать отношения классов в микроархитектуре Cairngorm для приложений Flex RIA.У меня небольшая путаница.

Например, у меня есть два класса FrontController и Controller.Контроллер расширяет FrontController.С другой стороны, у меня есть интерфейс ICommand и SaveEmployeeCommand, который реализует ICommand.

FrontController имеет эти два метода ...

  public function addCommand( commandName : String, commandRef : Class, useWeakReference : Boolean = true ) : void
  {
     if( commands[ commandName ] != null )
        throw new CairngormError( CairngormMessageCodes.COMMAND_ALREADY_REGISTERED, commandName );

     commands[ commandName ] = commandRef;
     CairngormEventDispatcher.getInstance().addEventListener( commandName, executeCommand, false, 0, useWeakReference );
  }

 /**
  * Executes the command
  */  
  protected function executeCommand( event : CairngormEvent ) : void
  {
     var commandToInitialise : Class = getCommand( event.type );
     //#### THIS IS DEPENDENCY ON ICommand INTERFACE ####
     var commandToExecute : ICommand = new commandToInitialise();

     commandToExecute.execute( event );
  }

Контроллер имеет метод init в конструкторе, который похож на это ...

public function init():void
{
    // SaveEmployeeEvent extends CairngormEvent
    // SaveEmployeeCommand implements ICommand interface
    //### THIS IS DEPENDENCY ON SaveEmployeeEvent AND SaveEmployeeCommand ###
    addCommand(SaveEmployeeEvent.SAVE, SaveEmployeeCommand);
}

Итак, давайте рассмотрим только зависимости от команд.Если мы посмотрим на код, то увидим, что FrontController имеет зависимость от ICommand и что контроллер имеет какую-то зависимость от SaveEmployeeCommand. Должен ли я показать обе зависимости 'Controllers-> Commands' на диаграмме классов UML? (Первая зависимостьэто FrontController-> ICommand, второй - Controller-> SaveEmployeeCommand)
Моя путаница связана с наследованием.Если я помещаю отношения наследования между FrontController и Controller, это означает, что Controller также является FrontController, поэтому он также зависит от ICommand (зависимость наследуется методом addCommand).Как мне смоделировать эту ситуацию?Я привел пример возможного решения ... Кто-нибудь предлагает?

Dependencies model

1 Ответ

0 голосов
/ 09 июля 2011

Отношения на вашей диаграмме выглядят правильно, за исключением стереотипа.Я бы изменил зависимость между FrontController и ICommand на <<Instantiate>>.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...