我有一个类:A
这是一个综合了一些更小的类,的B
,C
和D
。
B
,C
和D
实现接口IB
,IC
和ID
分别。
由于A
支持的所有功能B
,C
并且D
,A
器具IB
,IC
并ID
为好,但不幸的是这导致了大量的重路由在执行A
像这样:
interface IB
{
int Foo {get;}
}
public class B : IB
{
public int Foo {get {return 5;}}
}
interface IC
{
void Bar();
}
public class C : IC
{
public void Bar()
{
}
}
interface ID
{
string Bash{get; set;}
}
public class D: ID
{
public string Bash {get;set;}
}
class A : IB, IC, ID
{
private B b = new B();
private C c = new C();
private D d = new D();
public int Foo {get {return b.Foo}}
public A(string bash)
{
Bash = bash;
}
public void Bar()
{
c.Bar();
}
public string Bash
{
get {return d.Bash;}
set {d.Bash = value;}
}
}
有没有办法摆脱任何样板重定向A
?B
,C
并D
都实现了不同,但共同的功能,我这样的A
工具IB
,IC
而且ID
因为这意味着我可以通过A
自己的匹配这些接口的依赖,而不必暴露内部的辅助方法。
A
落实IB
,IC
并且ID
是感觉比较明智的写入Person.Walk()
,而不是Person.WalkHelper.Walk()
,例如。