Singleton-Klasse vs. Klasse mit statischen member

Trotz der vielen threads zu diesem Thema, ich bin immer noch unklar, Wann Sie wählen, welche Ansatz.
Ich bin der Hoffnung, dass durch die Diskussion ein konkretes Beispiel, ich will endlich "get it."

Hinweis: Meine Sprache ist hier Kakao, obwohl die generelle Frage ist nicht Sprach-spezifisch.

Habe ich eine Klasse TaskQueue, dass ich verwenden möchten:

  • Zugriff von überall in meinem code, um hinzufügen oder entfernen von geplanten Aufgaben
  • Prozess automatisch geplante tasks in regelmäßigen Abständen

Wenn TaskQueue zum ersten mal eingesetzt, ich will TaskQueue zu initiieren, ein thread, der wird dann aufwachen in regelmäßigen Abständen zum Bearbeiten der Aufgaben.

Offensichtlich, ich brauche mindestens zwei Variablen:

  • ein array zum speichern der Aufgaben
  • eine Instanz der thread-Bearbeitung der Aufgaben

Da ich nur eine Warteschlange von Aufgaben und ein thread für die Bearbeitung dieser Aufgaben, habe ich zwei Möglichkeiten:

  1. Machen TaskQueue eine singleton-Klasse (zum Beispiel CWL_DECLARE_SINGLETON_FOR_CLASS_WITH_ACCESSOR wie beschrieben in http://www.cocoawithlove.com/2008/11/singletons-appdelegates-and-top-level.html, was ich glaube, werde ich ändern müssen, um die CWLSynthesizeSingleton.h-Datei aus und starten Sie die Gewinde an den init-Zeit.)

  2. Haben die ganze Palette von Aufgaben und die thread-Instanz sowohl statisch (nach der Vorgehensweise, die hier vorgeschlagen: Wie kann ich erklären-Klasse-level-Eigenschaften in Objective-C?)

Ist es eindeutig ein Ansatz, der ist besser als der andere in diesem speziellen Fall? Wenn ja, warum?

InformationsquelleAutor Lolo | 2012-12-31
Schreibe einen Kommentar