2017-04-06 17 views
1

Hallo stackoverflowers,Design - statische Dienstprogramm Klassen oder Schnittstelle?

Ich möchte auf verschiedene Weise verarbeitet Daten exportieren: JSON-Datei, XML-Datei und SPList (in einer Sharepoint-Liste hinzufügen), vielleicht andere später, wer weiß. Ich wähle nicht die Exportstrategie zur Laufzeit, ich möchte nur die drei bereit haben, falls 'jemand' seine Meinung ändert ...

Ich habe eine Klasse, die jedem Weg entspricht (kein Klassenfeld, nur zwei Methoden Ist das für den Import und Export "zustandslose Klassen"?

Ich bin ein bisschen verwirrt darüber, welche Art von Implementierung wäre die beste.

Ich könnte drei statische Klassen machen, da diese 'Nutzklassen' sind, glaube ich, und sie leicht aufrufen, ohne sich mit der Instanziierung zu beschäftigen, würden diese Methoden irgendwie "Feuer'n'Vergessen" sein. Wenn neue Exportmöglichkeiten benötigt werden, habe ich eine große Anzahl isolierter Klassen.

Auf der anderen Seite könnte ich eine Schnittstelle mit Import-und Export-Methode machen, und meine Klassen implementieren die Schnittstelle. Aber es macht mich Instanzen für nur einen Aufruf zu erstellen, und ich brauche nicht wirklich eine Fabrik (ich wähle nicht zur Laufzeit für den Moment) und finde nicht die Schnittstelle stark gerechtfertigt (keine Notwendigkeit für Polymorphismus?) Und wenn Eine neue Methode wird hinzugefügt, ich kann die Schnittstelle einfach neu implementieren, wenn keine neuen Parameter benötigt werden.

Welche würden Sie verwenden, statische Dienstprogramm Klassen oder Schnittstellen? oder etwas anderes vielleicht?

Antwort

0

Ich würde für die Schnittstelle stimmen. Dies führt dazu, dass Sie dem Open-Closed-Prinzip folgen, d. H. Ihr Programm wird für Erweiterungen offen und für Änderungen geschlossen. Im Einzelnen wähle ich Builder Design Pattern

Obwohl Sie Objekte in diesem Ansatz erstellen müssen. Ich denke, das sollte in Ordnung sein. Schnittstellen sind in Java schneller. Sie können für das Fabrikmuster auch gehen, um den Exporteur/Importeur zu entscheiden.

Verwandte Themen