Frage

Ich habe ein Design Frage. Wenn eine Anwendung zu schreiben, wo es mehr Komponenten, die einige Attribute gemeinsam nutzen, und unterscheiden sich in anderen sowohl in Bezug auf GUI (Windows Forms) und Backend, wie würde man dies theoretisch angehen?

Zum Beispiel habe ich eine Anwendung, wo ich 4 verschiedene Arten ein Produkt. Die Formulare für die Eingabe von Produktdetails alle Aktien 3 verschiedenen Bereichen. Bisher leicht - hat eine Basisklasse, leitet dann die 4 bildet aus dieser Basisklasse. Jedoch sagt, 2 Produkte ein bestimmtes Verhalten zu teilen, die die gleiche für beide ist. Natürlich könnte ich eine Schnittstelle, die Methoden definiert, dann haben diese 2-Produkteingabeformulare diese Schnittstelle implementieren, aber da Schnittstelle keine Default-Implementierung bietet, wäre es nicht eine Verschwendung, das zu tun sein? Da würde ich eine Implementierung in jeder Klasse zu bieten haben, und wenn es genau das gleiche ist, wäre es Code Wiederholung sein.

Ich könnte natürlich diese Methode in der Basisklasse setzen und 2 bildet daraus abgeleitet haben. Wenn meine Formen mehr als ein gemeinsames Element gemeinsam nutzen und nicht andere Elemente teilen, was wäre der vernünftigste, logischste Weg, dies zu vertreten, ohne dass ich die Haare ausreißen?

Keine korrekte Lösung

Andere Tipps

Warum nicht haben die zwei nicht verwandten Klassen direkt von Ihrer Basisklasse ableiten und dann eine neue Klasse mit der gemeinsamen Funktionalität erstellen und wird von der Basisklasse abgeleitet und haben die verbleibenden zwei Klassen erben von dieser neuen Klasse?

BaseClass
CommonClass : BaseClass
ClassA : BaseClass
ClassB : BaseClass
ClassC : CommonClass
ClassD : CommonClass

Eine Möglichkeit, gemeinsames Verhalten in zwei Klassen zu bekommen, ist für die beiden Klassen zu enthält das Verhalten als Mitglied anstelle von vererben diesem Verhalten: für Formen, könnte dies bedeuten, die eine ‚Benutzersteuerung‘ (dh eine Sammlung von wieder verwendbaren gemeinsamen Kontrollen).

Hard ohne spezifisches Layout zu erzählen. Im Allgemeinen ist die andere, oft flexiblere Form der Wiederverwendung tut Komposition statt Vererbung. In der Tat zeigt die Steuerungshierarchie, wie stark Zusammensetzung gehen kann. Vielleicht können Sie Teile Ihrer UI in benutzerdefinierten Steuerelemente trennen, die auf das jeweilige Produkt Layout basiert assembliert werden Sie nach

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