Ich habe eine Klasse: A
das ist eine Mischung aus mehreren kleineren Klassen B
, C
und D
.
B
, C
Und D
Schnittstellen implementieren IB
, IC
und ID
jeweils.
Da A
unterstützt alle Funktionen von B
, C
und D
, A
implementiert IB
, IC
und ID
auch, 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
, C
Und D
implementieren alle unterschiedlich , aber gemeinsame Funktionalität, und ich mag , dass A
Geräte IB
, IC
und ID
weil es bedeutet , kann ich in übergeben A
sich als Abhängigkeit diese Schnittstellen übereinstimmt, und müssen nicht die inneren Hilfsmethoden aus.
A
umzusetzen IB
, IC
und ID
ist es sinnvoller zu schreiben fühlt , Person.Walk()
im Gegensatz zu Person.WalkHelper.Walk()
, zum Beispiel.