Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Ligação entre os padrões de projeto

Como proceder para conectar os padrões de projeto? Por exemplo conectar o command ao facade, command ao strategy, entre outras ligações possíveis considerando os demais padrões. Utilizando linguagem java.

2 respostas
solução!

Oi Taís, tudo bem?

Conectar os padrões de projeto é uma ótima maneira de criar sistemas mais flexíveis e reutilizáveis. No caso específico que você mencionou, conectar o Command ao Facade e o Command ao Strategy, é possível fazer isso através do uso de interfaces.

Vamos começar com a conexão entre o Command e o Facade. O padrão Command é utilizado para encapsular uma solicitação como um objeto, permitindo que você parametrize clientes com diferentes solicitações, enfileire ou registre solicitações e suporte operações desfazer. Já o Facade é um padrão que fornece uma interface simplificada para um subsistema complexo.

Uma maneira de conectar esses dois padrões é ter o Facade como cliente do Command. O Facade pode receber solicitações dos clientes e, em vez de executá-las diretamente, pode criar objetos Command correspondentes e delegar a execução a esses objetos. Dessa forma, o Facade fica responsável por gerenciar as solicitações e o Command fica responsável por executá-las.

Agora, em relação à conexão entre o Command e o Strategy, o padrão Command pode ser usado para implementar o Strategy. O Strategy é um padrão que permite definir uma família de algoritmos, encapsulá-los e torná-los intercambiáveis. O Command, por sua vez, encapsula uma solicitação como um objeto.

Nesse caso, você pode ter diferentes implementações do Command, cada uma representando um algoritmo específico do Strategy. O cliente pode então escolher qual implementação do Command usar, permitindo a troca dinâmica do algoritmo em tempo de execução.

Em relação à implementação em Java, você pode criar interfaces para representar os diferentes padrões e implementar essas interfaces em classes concretas. Por exemplo, você pode ter uma interface Command com um método execute(), uma interface Facade com métodos simplificados para o subsistema e uma interface Strategy com um método específico para o algoritmo.

Um abraço e bons estudos.

Olá Lorena, Tudo bem. Obrigada pelas dicas.