Wie bestimmen Sie, wie eine Klasse XHelper oder XUtils aufgerufen wird?
Meiner Meinung nach:
Die Hilfsklasse ist eine Klasse, die instanziiert werden und geschäftliche Arbeit leisten kann
Die Utils-Klasse ist eine statische Klasse, die kleine und sich wiederholende Operationen für eine Art Instanz ausführt (Beispiel für die Utils-Klassen ArrayUtils oder IOUtils von Apache).
Utils
für eine statische Klasse zu verwenden, die überall in der Organisation oder in einer anderen Organisation verwendet werden kann. EineHelper
Klasse verfügt über allgemeinen Code, der innerhalb eines Projekts wiederverwendet werden kann und Abhängigkeiten innerhalb des Projekts aufweist. Natürlich gibt es keine allgemein akzeptierte Regel, aber ich finde das nützlich.Antworten:
Es gibt viele Namensstile. Ich würde Utils vorschlagen, nur weil es üblicher ist.
Unter einer Utility-Klasse werden nur statische Methoden verstanden und sie sind zustandslos. Sie würden keine Instanz einer solchen Klasse erstellen.
Ein Helper kann eine Utility-Klasse oder ein Stateful sein oder die Erstellung einer Instanz erfordern. Ich würde dies nach Möglichkeit vermeiden.
Wenn Sie den Namen genauer machen können. Wenn es beispielsweise Sortiermethoden gibt, machen Sie es zu XSorter
Für Arrays finden Sie Hilfsklassen wie
Übrigens ist eine kurze Hand für eine Utility-Klasse eine Aufzählung ohne Instanzen
Wenn Sie eine Schnittstelle implementieren müssen, würde ich einen zustandslosen Singleton verwenden.
quelle
Allgemein? Es ist völlig willkürlich. Hierfür gibt es keine Regeln.
quelle
Ein Dienstprogramm ist eine allgemein verwendete "Blattknoten" -Klasse. Das heißt, es hat keine Abhängigkeiten in Ihrem Projekt und kann von Projekt zu Projekt portiert werden, ohne zu brechen oder unbrauchbar zu werden. Beispiele:
Vector3
,RandomNumberGenerator
,StringMatcher
, etc ...Ein "Helfer" scheint jede Klasse zu sein, deren Entwurf darin besteht, einer anderen Klasse zu helfen. Diese können von Ihrem Projekt abhängen oder nicht. Wenn Sie eine
GameNetworkClient
Klasse erstellen , können Sie sagen, dass dieGameNetworkConnection
Klasse ein "Helfer" ist, weil sie dem "hilft"GameNetworkClient
.Die Art und Weise, wie Entwickler auf Tools verweisen, spiegelt die allgemeine Verwendung dieser Wörter wider. Wenn Sie sich an Hörgeräte erinnern können, die als "hilfreich" oder "nützlich" beschrieben wurden, hat ein hilfreiches Werkzeug in der Regel einen gewissen Kontext (Käsereibe hilft beim Reiben von Käse, Maisentferner hilft beim Abstreifen von Mais, Speedloader hilft beim Nachladen einer Schusswaffe). Es wird erwartet, dass ein "Dienstprogramm" in einer Vielzahl von Kontexten funktioniert (WD-40, Klebeband, Armeemesser, Kleber, Taschenlampe usw.).
quelle
Wie Jesper sagte, ist es völlig willkürlich . Sie können sich vorstellen, was für Ihre Organisation funktioniert, und dies zur Konvention machen.
Für mich ist es ungefähr so:
Allgemeine Aufgaben ausführen, die in verschiedenen Modulen hilfreich sein können. Wie Peter Lawrey sagte, sind spezifischere Namen nützlich.
Aufgaben, die nur in dem Modul verwendet werden, in dem sie platziert sind, sind nicht sinnvoll, um an anderer Stelle importiert zu werden. Daher könnte der Name spezifischer sein - ModuleName Helper (z. B. AdministrationHelper , LoginHelper )
quelle
Darauf gibt es keine endgültige Antwort. Finde ein Namensschema heraus und bleibe dabei. Die Benennung Ihrer Pakete und Klassen ist ein wichtiger Bestandteil der Softwarearchitektur, und niemand kann Ihnen diese Entscheidung nehmen.
Ich persönlich mag den XHelper besser, aber ich sehe XUtils häufiger im Fremdcode.
Ich mag auch das Namensschema "Plural", das Sie sowohl im JDK als auch in Guava finden :
Wenn sich eine Klasse mit
Collection
Objekten befasst , wird sie aufgerufenCollections
Array> Arrays (jdk)
Liste> Listen (Guave)
Karte> Karten (Guave)
etc.
quelle