Ben bir sınıf vardır: A
küçük sınıflar, bir dizi bir bileşimidir B
, C
ve D
.
B
, C
Ve D
arabirimlerini IB
, IC
ve ID
sırasıyla.
Yana A
tüm işlevselliği destekler B
, C
ve D
, A
uygular IB
, IC
ve ID
aynı 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
, C
Ve D
tüm farklı ama ortak işlevselliği uygulamak ve bunun gibi A
aletlerin IB
, IC
ve ID
bu demektir çünkü içinde geçebilir A
bu arabirimleri eşleşen bir bağımlılık olarak kendisi ve iç yardımcı yöntemleri göstermek gerekmez.
A
uygulamak IB
, IC
ve ID
o yazma daha mantıklı hissediyor olduğunu Person.Walk()
aksine Person.WalkHelper.Walk()
örneğin.