Ben bir sınıf vardır: Aküçük sınıflar, bir dizi bir bileşimidir B, Cve D.
B, CVe Darabirimlerini IB, ICve IDsırasıyla.
Yana Atüm işlevselliği destekler B, Cve D, Auygular IB, ICve IDaynı zamanda, ama bir sürü bu maalesef potansiyel müşteri uygulanmasında yeniden yönlendirmeA
Şöyle ki:
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;}
}
}
Bu kazan plakası yönlendirmesinden herhangi birinden kurtulmanın bir yolu var mı A? B, CVe Dtüm farklı ama ortak işlevselliği uygulamak ve bunun gibi Aaletlerin IB, ICve IDbu demektir çünkü içinde geçebilir Abu arabirimleri eşleşen bir bağımlılık olarak kendisi ve iç yardımcı yöntemleri göstermek gerekmez.
Auygulamak IB, ICve IDo yazma daha mantıklı hissediyor olduğunu Person.Walk()aksine Person.WalkHelper.Walk()örneğin.