2011-07-06 3 views
1

J'essaie de modéliser les relations de classe dans la micro-architecture Cairngorm pour les applications Flex RIA. J'ai un peu de confusion.Modélisation de l'héritage et des dépendances dans UML

Par exemple, j'ai deux classes FrontController et Controller. Le contrôleur étend FrontController. De l'autre côté, j'ai ICommand interface et SaveEmployeeCommand qui implémente ICommand.

FrontController a ces deux méthodes ...

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); 
    } 

Controller a la méthode d'initialisation dans le constructeur Wich est comme ça ...

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

Donc, nous considérons juste des dépendances sur les commandes. Si nous regardons le code, nous verrons que FrontController a une dépendance sur ICommand et que Controller a une sorte de dépendance sur SaveEmployeeCommand. Dois-je montrer les deux dépendances 'Controllers-> Commands' sur le diagramme de classes UML? (La première dépendance est FrontController-> ICommand, la seconde est Controller-> SaveEmployeeCommand)
Ma confusion concerne la partie héritage. Si je mets une relation d'héritage entre FrontController et Controller, cela signifie que Controller est aussi FrontController, donc il a aussi une dépendance sur ICommand (la dépendance est héritée avec la méthode addCommand). Comment devrais-je modéliser cette situation? Je mets un exemple de solution possible ... Tout suggère?

Dependencies model

Répondre

0

Les relations dans votre diagramme semblent corrects, à l'exception du stéréotype. Je voudrais changer la dépendance entre FrontController et ICommand à <<Instantiate>>.

Questions connexes