Ich habe eine Dienstprogrammklasse, die keine Datenelemente enthält und nur einige Dienste über ihre Methoden bereitstellt. In einem solchen Fall, welcher Ansatz ist besser, erstellen Sie eine Klasse mit allen statischen Methoden oder erstellen Sie eine Klasse mit normalen Methoden und rufen Sie sie auf, indem Sie ein Objekt der Klasse erstellen? Was sind die Vor- und Nachteile der beiden Ansätze?Eine Klasse mit statischen Methoden oder Klasse mit normalen Methoden
Antwort
Ich denke, die überlegene Wahl ist mit einem namespace
und freien Funktionen. Gründe:
eine
class
mit normalen Methoden zu verwenden ist verwirrend, da es instanziiert werden muss, hat aber keinen Staat.Die Verwendung einer
class
mit nur statischen Methoden ist besser, erfordert jedoch, dass der Benutzer immer den Namen der Klasse angibt.ein
namespace
und freie Funktionen wird verhindert, dass die Möglichkeit einer Verwechslung/unnötige instantiations, und ermöglicht dem Benutzer auch dienamespace
Aliasnamens oderusing namespace
Wiederholungen zu vermeiden verwenden, wenn mehrere Funktionen im gleichen Umfang verwenden. Dienamespace
kann auch mehrere Dateien umfassen.
Wenn Sie keine Datenelemente haben, gibt es keinen Grund, eine Klasse mit Elementmethoden zu verwenden. Sie müssen eine Instanz Ihrer Klasse erstellen, um Ihre Methoden aufzurufen (ein kleiner, aber vermeidbarer Overhead)
Der Aufruf einer statischen Methode einer Klasse generiert keinen Overhead. Das Gleiche gilt für Funktionen in einem Namespace.
- 1. Statische Methoden oder keine statischen Methoden in der Dao-Klasse?
- 2. Singleton-Klasse oder eine Klasse mit statischen Methoden in ASP.NET MVC-Anwendung
- 3. WCF DataContract-Klasse mit Methoden
- 4. Anruf python3 Klasse mit Methoden
- 5. Klasse mit dynamischen Methoden erstellen
- 6. Scanner Klasse Methoden
- 7. Struct Methoden insde eine Klasse
- 8. Leistung der Verwendung von statischen Methoden vs. Instanziierung der Klasse mit den Methoden
- 9. Modul mit Klassen mit nur statischen Methoden
- 10. Wie Klasse automatisch mit asynchronen Methoden in einer anderen Klasse mit asynchronen Methoden
- 11. Python-Klasse statische Methoden
- 12. Apigility Resource-Klasse Methoden
- 13. API-Methoden abrufen - Klasse oder Modul
- 14. Update RichTextBox mit statischen Methoden
- 15. AutoMapper mit statischen Factory-Methoden
- 16. Scala Klasse Methoden
- 17. Null Zeiger Fehler mit statischen Methoden
- 18. Java-Generics mit statischen Factory-Methoden
- 19. Statische Klasse Vs. Klasse mit privatem Konstruktor und allen statischen Eigenschaften und Methoden?
- 20. Bean-Definition für die Verwendung einer Klasse mit statischen Methoden in Spring Controller-Klasse
- 21. Klasse mit umbenannten Methoden in TypeScript exportieren?
- 22. Abstrakte Klasse mit allen konkreten Methoden
- 23. IntelliJ dekompilieren Klasse mit allen synthetischen Methoden
- 24. statische Methoden oder normale Methoden in Bibliotheken
- 25. Functons, statische Methoden oder normale Methoden
- 26. Cloning C++ Klasse mit rein virtuellen Methoden
- 27. Ändern einer serialisierbaren Klasse durch Hinzufügen von statischen Methoden, Java
- 28. Übergeordnete virtuelle Methoden, wenn eine Klasse instanziieren
- 29. Verwendung von Method aufrufen mit statischen Methoden?
- 30. Ein Problem beim Aufrufen von statischen Methoden aus einer Klasse
Dritte mögliche Option: Verwenden Sie einen 'Namespace' und freie Funktionen. –
Danke für den Kommentar, einen Grund für die Wahl eines der drei Ansätze? – Arun