Frage

Sollte eine wrapper-Klasse eine Instanz der Klasse oder eine Klasse mit shared Mitglieder?Ich brauche zum erstellen einer wrapper-Klasse um eine 3rdparty Bibliothek auszusetzen, nur 2 Funktionen und versteckt sich die ganze Komplexität eines 3rd-party-Klasse.

War es hilfreich?

Lösung

Einfache Regel hier. Wenn die Klasse in der Bibliothek von dritter Seite ist eine Instanzklasse , um Ihren Wrapper ein Instanzklasse ; wenn die Klasse in der dritten Partei ist eine statische Klasse , um Ihren Wrapper einer statische Klasse . Die Idee der Wrapper-Klassen ist in der Regel zu imitieren Struktur, sondern einfach Komplexität / Erweitert / unerwünschte Funktionalität verbergen.

Die einzige Ausnahme von dem ich denken kann, ist der Fall, dass die Drittanbieter-Bibliothek schlecht ausgebildet ist und eine Instanz der Klasse soll wirklich als eine statische Klasse existiert. wenn Sie die Funktionalität auf einem solchen Niveau Natürlich wickeln, dass Ihre Wrapper-Funktion eine neue Klasse instanziiert , sollte es wirklich erklären sein, innerhalb von statische Klasse .

Andere Tipps

Das hängt wirklich von der 3rd-party-Bibliothek...wenn es sinnvoll ist, mehrere separate Instanzen der lib mit eigenen Staat, dann eine Instanz-Ansatz geeignet ist.Wenn es ist zustandslose Methoden, dann eine statische/shared API angemessen wäre.

Es sei denn, Sie benötigen es, um eine Schnittstelle implementieren, in welchem Fall es hat um Instanz-basiert.

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