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.
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
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.
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.