Frage

Ich erinnere mich an eine Debatte über diese irgendwo zu sehen, und bin derzeit erwägen, ein Basisobjekt zu entfernen, die jedes Business-Objekt in einem System arbeite ich an, von erbt. Es enthält ein paar Eigenschaften, einige Datenbanklogik, und einige Konstruktor Logik.

Ist das ein Anti-Muster, oder ist die Jury noch heraus? Wäre es besser, einen Basisvertrag zu haben, von erben, die eine bestimmte Menge an Textcodierung erfordern würde in jedem Objekt zu tun?

Bearbeiten : Ich mag dsimcha tun und fühle es sehr gut zu diesem Thema widerspiegelt, bin ich immer noch gerne weitere Antworten hören

War es hilfreich?

Lösung

Die Standard-Faustregel Vererbung verwenden nur Flexibilität für die Benutzer einer Klasse durch Polymorphismus bereitzustellen und Zusammensetzung verwenden, wenn Sie Code aus anderen Klassen wiederverwenden möchten. Allerdings, solange Sie nicht die Liskov Substitutionsprinzip zu verletzen es ist wahrscheinlich nicht so schlimm. Schreiben Tonnen Textvorschlag ist von Natur aus eine schlechte Sache, auch, weil sie die Teile des Codes verschleiert, wo die eigentliche Handlung geschieht und ist anti-DRY. Wenn Sie das Liskov Substitutionsprinzip verletzen, aber dann absolut das ist keine gute Idee.

Andere Tipps

  

Ich möchte auch, welche Probleme verstehe ich auftreten können, oder sollten sich bewusst von

sein

Ein mögliches Problem ist, wenn Sie Mehrfachvererbung verwenden: Ihre Unterklasse erbt zwei Instanzen der ‚Eve‘ Klassen ... weshalb C ++ unterstützt so genannte virtuelle Vererbung

.

Es ist ein häufig verwendetes Idiom: zum Beispiel in .Net alles von System.Object leitet ... und / oder alle COM-Objekte die IQueryInterface Schnittstelle implementieren

.

Im Moment ist ein Anti-Muster in einem Vakuum. Ist Ihr ‚Eve Klasse‘ verursachen Sie Probleme? Welche Vorteile erwarten Sie von zu entfernen, sie zu verwirklichen? Zu fragen, ob es auf einige Standardliste der Anti-Patterns nur hilft, wenn es hilft bei der Identifizierung tatsächliche Ausgaben.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top