[英]How can I segregate fat interface through implementing adaptern pattern?
假设我有一个不能改变的胖接口。 而且我还有一些客户端类只想使用该胖接口中的少数方法。 对于这种情况,如何实现适配器模式,以实现接口隔离原则?
您可以执行以下操作:
// Assuming this is your fat interface
interface IAmFat
{
void Method1();
void Method2();
...
void MethodN();
}
// You create a new interface that copies part of the fat interface.
interface IAmSegregated
{
void Method1();
}
// You create an adapter that implements IAmSegregated and forward
// calls to the wrapped IAmFat.
class FatAdapter : IAmSegregated
{
private readonly IAmFat fat;
public FatAdapter(IAmFat fat)
{
this.fat = fat;
}
void IAmSegregated.Method1()
{
this.fat.Method1();
}
}
适配器在这里并不是真正的正确工具。 它旨在通过使两个不兼容的接口相互适应来进行通话。 在这种情况下,您希望根据最终用户以不同方式公开某些功能子集。 在这种情况下,您要使用外观。
class Fat{
public string A();
public int B();
.
public void EatMeat()
.
public void Z();
}
class JennyCraig{
private Fat f = Fat();
public string A(){
return f.A();
}
public void Z(){
return f.Z();
}
class Atkins{
public Fat f = Fat();
public void EatMeat(){
return f.EatMeat();
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.