modelo intermediário
modelo intermediário (Mediator) é utilizado para reduzir a complexidade de comunicação entre uma pluralidade de objectos e classes. Este modelo fornece uma classe intermediária, que normalmente trata as comunicações entre as diferentes classes, e suporte para baixo acoplamento, tornando o código mais fácil de manter. padrões mediador pertencem padrões comportamentais.
introdução
Intenção: O uso de um objeto intermediário que encapsula um conjunto de objetos interagem objetos manutenção intermediários de se referir uns aos outros de forma explícita, tornando-se o acoplamento fraco, e pode mudar de forma independente a interação entre eles.
Principalmente para resolver: há um monte de objetos e relações entre objetos, isso conduzirá inevitavelmente à estrutura do sistema torna-se muito complicado, mas se um objeto é alterado, também precisa manter o controle de objetos associados a ele, e fazer o tratamento adequado .
Quando se deve utilizar: várias classes acoplados uns com os outros, formando uma estrutura em rede.
Como corrigir: a estrutura de rede acima mencionada é separado em a estrutura em estrela.
O código-chave: comunicação entre Colega objetos encapsular uma classe separadamente.
Exemplos de aplicação: 1, antes da adesão da China à OMC é a vários países negociar uns com os outros estrutura, complexo, é por países da OMC para o comércio com o outro.2, sistema de agendamento aeroporto. 3, framework MVC, onde C (o controlador) é M (modelo) e V (vista) mediador.
Vantagens: 1, reduzindo a complexidade da classe irá ser convertido em um-para-muitos.2, cada dissociação entre as classes. 3, em linha com os princípios da Demeter.
Desvantagens: grande corretor irá tornar-se complexa e difícil de manter.
cenários de uso: 1 existe entre objetos no sistema de relacionamento referência mais complexo, levando à dependência entre eles confuso e difícil de reutilizar a estrutura do objeto.2, quer uma classe média que encapsula o comportamento de várias classes, e não quer gerar muitas subclasses.
Nota: não deve ser usado quando a confusão responsabilidade.
realização
Vamos percorrer a instância salas de bate-papo modelo intermediário. Exemplo, vários usuários podem enviar mensagens para quartos, salas de chat de bate-papo, mensagem é exibida para todos os usuários. Vamos criar duas classesChatRoomedo usuário.objetosde usuáriomaneirassala de chatpara compartilhar suas notícias.
MediatorPatternDemo,demonstramos o uso do objeto de classedo usuáriopara exibir a comunicação entre eles.
passo 1
Criar classe intermediária.
ChatRoom.java
import java.util.Date; ChatRoom classe pública { showMessage public static void (usuário do usuário, mensagem String) { System.out.println (new Date (). ToString () + "[" + User.getName (+) "]:" + message); } }
passo 2
Criar uma classe de usuário.
User.java
classe pública usuário { private String nome; Cadeia getName pública () { nome de retornar; } setName public void (String nome) { this.name = nome; } Usuário pública (String nome) { this.name = nome; } sendMessage public void (String message) { ChatRoom.showMessage (isto, da mensagem); } }
passo 3
Use o objetodo usuáriopara exibir a comunicação entre eles.
MediatorPatternDemo.java
classe pública MediatorPatternDemo { main (String [] args) public static void { Do usuário robert = new User ( "Robert"); Do usuário john = new User ( "John"); robert.sendMessage ( "Hi John !!"); john.sendMessage ( "Olá Robert !!"); } }
passo 4
Verifique saída.
Qui 31 janeiro 16:05:46 IST 2013 [Robert] :! Hi John! Qui 31 janeiro 16:05:46 IST 2013 [John] :! Olá Robert!