Ich schreibe Anwendungen für verschiedene Plattformen, aber hauptsächlich OS X und Windows. Beides wurde beeinflusst durch die jüngsten Trends in der Test-Driven-Entwicklung (TDD), SOLID und so weiter. Das meiste habe ich als guten Rat empfunden. Ich habe festgestellt, dass ich, wenn ich eine hervorragende Testabdeckung habe, eher nach Bedarf umgestalten kann, weil ich mehr Selbstvertrauen habe, dass ich bei meinen Tests irgendwelche Nebenwirkungen des Refactorings feststellen werde.Angesichts der jüngsten Trends in TDD und so weiter, ist ein "Manager" -Objekt immer eine schlechte Idee?
Wie auch immer, das führt mich zu meiner Frage: Ist ein "Manager" Singleton immer eine schlechte Idee? Ich schreibe eine Cocoa-Anwendung, die eine große Anzahl von QuickTime-Dateien in einer Warteschlange verarbeiten muss. Es kann nur eine Warteschlange in der Anwendung geben, und es muss für mehrere Teile der Anwendung zugänglich sein, damit sie Elemente zur Warteschlange hinzufügen können. Ich habe herausgefunden, dass dies am einfachsten mit einem Singleton geschieht. Nun, ich habe mir Mühe gegeben, diesen Singleton testbar zu schreiben, also ist TDD kein Problem.
Was würde ich in diesem Fall für einen Singleton ersetzen? Welche anderen Designmuster funktionieren und können noch getestet werden? (Beachten Sie, dass diese Frage als sprachunabhängig betrachtet werden sollte. Dies ist eine allgemeine OO- und TDD-Frage.)
Ich mag diese Antwort wirklich wirklich. Es ist möglich, dass sich Ereignisse ändern und daher muss die Lösung geändert werden, aber das ist bei den meisten Softwareprojekten der Fall. –