:私はクラスの持っている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()
例えば、。