Ich habe eine Klasse: Adas ist eine Mischung aus mehreren kleineren Klassen B, Cund D.
B, CUnd DSchnittstellen implementieren IB, ICund IDjeweils.
Da Aunterstützt alle Funktionen von B, Cund D, Aimplementiert IB, ICund IDauch, aber dies leider führt zu einer viel Umleiten bei der Umsetzung derA
Wie so:
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;}
}
}
Gibt es eine Möglichkeit, diese Umleitung von Boilerplates in loszuwerden A? B, CUnd Dimplementieren alle unterschiedlich , aber gemeinsame Funktionalität, und ich mag , dass AGeräte IB, ICund IDweil es bedeutet , kann ich in übergeben Asich als Abhängigkeit diese Schnittstellen übereinstimmt, und müssen nicht die inneren Hilfsmethoden aus.
Aumzusetzen IB, ICund IDist es sinnvoller zu schreiben fühlt , Person.Walk()im Gegensatz zu Person.WalkHelper.Walk(), zum Beispiel.