Como o princípio da inversão de dependência funciona em linguagens sem interfaces?

5

Em C # / Java, o princípio de inversão de dependência é frequentemente demonstrado por classes de alto nível que dependem em uma interface / abstração (que possui). Classes de baixo nível irão implementar a interface, invertendo assim a dependência.

Eu me pergunto, como é aplicado em linguagens orientadas a objetos sem interface? Por exemplo, eu não sou especialista em Ruby, mas parece que nessa linguagem você não pode definir interfaces como em Java / .NET

    
por Louis Rhys 17.04.2013 / 04:00
fonte

1 resposta

7

Mesmo que você não tenha interfaces explícitas em linguagens dinâmicas, o princípio de inversão de dependência pode ser seguido escrevendo o código do cliente em uma representação abstrata da dependência , que os "implementadores" concretos aderir à digitação via pato.

De certo modo, esse é o padrão em uma linguagem dinâmica, e pode-se argumentar que o princípio de inversão de dependência é seguido sem qualquer esforço consciente. Mas, na prática, vale a pena considerar a representação abstrata de suas classes concretas, para obter mais informações sobre o domínio e para desvincular de qualquer detalhe de implementação que não capture a essência da abstração.

    
por 17.04.2013 / 04:19
fonte