1
我想創建門面類來處理兩個服務很少的操作。 對於那些接觸我有代理類業務。門面有兩個服務內部和依賴注入 - 設計模式的做法
有抽象的代理和業務的派生代理 - 如何創建架構的一部分,以避免解決門面?
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(){}}
我應該用什麼設計模式來修復這種情況?
編輯
可選我應該在這個解決方案,但還是不喜歡它更
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() { } }