2016-05-24 3 views
0

Ich habe diese einfache Anwendung implementiert, die verschiedene Sortieralgorithmen in Aktion zeigt.Java: Bestes OOP-Verhalten von Wgets, die Zeichnungen steuern

enter image description here

Allerdings bin ich besorgt über die OOP-Design, wie ich eine Klasse für Kontrollen haben (rechts) und eine andere für die Zeichnungen (die graue Feld). Das Problem, ich weiß nicht, wie man kommuniziert, zum Beispiel Tastenklick zwischen diesen beiden Klassen. Was ich getan habe, was es schmutzig und nicht OOP aussieht, übergibt notwendige Widgets als Parameter an die Drawing-Klasse und implementiert dann dort Action-Listers. Was scheint nicht richtig zu sein. Bitte lass mich wissen was hier am besten ist.

Antwort

0

(Diese Frage geschlossen werden, weil man nur subjektive Antworten bekommen können, aber trotzdem ...)

Ihre Drawing Klasse ist verantwortlich für die Stäbe Zeichnung basierend auf Daten, die ihm zur Verfügung gestellt. Es muss nichts über die Widgets (Klassen?) Von der rechten Seite des Bildschirms wissen. Es muss jedoch wissen, mit welcher Art von Daten es arbeiten kann und muss dies irgendwie angeben. In OOP verwenden Sie eine Schnittstelle, um diesen Vertrag zu definieren. In diesem Fall können Sie eine DrawingDataProvider Schnittstelle mit einer Methode GetData haben (die die Daten in einer Struktur zurückgibt, die von der Klasse Drawing diktiert wird).

Die Steuerelemente auf der rechten Seite können dann die DrawingDataProvider-Schnittstelle mit der konkreten GetData-Methode implementieren, die die Elemente bei der Sortierung (vermutlich von einer Drittanbieterklasse, die die Algorithmen implementiert) in der von der Schnittstelle vorgegebenen Struktur zurückgibt. Um Dinge zusammenzubringen, konstruieren Sie Ihre Drawing Klasse, indem Sie diese Implementierung als Referenz übergeben.