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

Strategy e Open/Closed Principle

Notei que o Strategy não funciona sem o OCP porque uma classe que serve como contexto deve ser aberta à extensões para poder receber sempre novas estratégias. E ela só pode ser aberta às extensões se for fechada à modificações.

Ou nem sempre OCP é necessário a Strategy ?

3 respostas

Oi Marcelo, tudo bom?

Acredito que sejam conceitos diferentes mas que podem se relacionar.

Repare que o pattern Strategy normalmente está vinculado à uma interface que descreve o comportamento padrão. Enquanto OCP está mais relacionado à herança, fazer juz ao encapsulamento mesmo quando herdamos de uma outra classe. Manter a herança com o minimo de acoplamento possivel entre as classes =)

Podemos cair em um caso onde ambos sejam usados mas não são conceitos que compartilham de uma mesma base teorica.

Abraço =)

Oi André. Tudo bem?

Mas a pergunta que não quer calar: dá pra usar o Strategy sem os princípios do OCP ?

solução!

Resumidamente, não.

Porque, levando em consideração a ideia que o OCP traz de que as entidades devem estar abertas a extensão mas não a alteração e que com o padrão strategy normalmente implementamos uma interface, a propria interface ja garante o OCP pois estaremos sempre implementando a funcionalidade em classes especificas(aberto para mudanças) sem alterar pontos no código pois a criação de novas estrategias não afetam a interface nem outras estrategias ja existents (fechado para modificação) =)