나는 수업이 : 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모든 다르지만 일반적인 기능을 구현하고, I처럼 A구현 IB, IC및 ID그 의미 때문에 전달할 수있는 A이러한 인터페이스 일치 의존성 자체 및 내부 헬퍼 메소드를 노출 할 필요가 없다.
A구현을 IB, IC그리고 ID그것을 쓰기에 더 분별있는 느낌입니다 Person.Walk()반대로 Person.WalkHelper.Walk()예를 들어,.