Je souhaite créer une classe Facade pour gérer quelques opérations sur deux services. Pour contacter ces services, j'ai des classes proxy. Ayant un proxy abstrait et un proxy dérivé par service - comment puis-je créer cette partie de l'architecture, pour éviter la résolution dans Facade?Façade avec deux services à l'intérieur et injection de dépendances - approche de modèle de conception
class Facade
{
private Proxy proxy1;
private Proxy proxy2;
public Facade()
{
//I don't like this part
proxy1 = ...Resolve<Proxy1Type>();
proxy2 = ...Resolve<Proxy2Type>();
}
public void Do()
{
proxy1.Call();
proxy2.Call();
}
}
abstract class Proxy {public void Call();}
class Proxy1Type : Proxy {public void override Call(){}}
class Proxy2Type : Proxy {public void override Call(){}}
Quel motif de conception dois-je utiliser pour réparer ce cas?
EDIT
En option je devrais aller dans cette solution, mais ne l'aime pas beaucoup
class Facade
{
private IProxy proxy1;
private IProxy proxy2;
//I feel it's still wrong
public Facade(IProxy1Type p1, IProxy2Type p2)
{
proxy1 = p1;
proxy2 = p2;
}
public void Do()
{
proxy1.Call();
proxy2.Call();
}
}
interface IProxy { void Call();}
interface IProxy1Type : IProxy{}
interface IProxy2Type : IProxy {}
class Proxy1Type : IProxy1Type { public void Call() { } }
class Proxy2Type : IProxy2Type { public void Call() { } }