Jakie są najlepsze przykłady Singleton Pattern w Java API? Czy klasa Runtime jest singletonem?klasa singleton w języku Java API
Odpowiedz
tylko dwa przykłady przychodzi do głowy:
Zobacz również:
Aktualizacja: odpowiedzieć (obecnie usunięty?) Komentarz PeterMmm (która zapytała, jak wiedziałem, że była to pojedyncza), sprawdź javadoc i kod źródłowy:
public class Runtime {
private static Runtime currentRuntime = new Runtime();
/**
* Returns the runtime object associated with the current Java application.
* Most of the methods of class <code>Runtime</code> are instance
* methods and must be invoked with respect to the current runtime object.
*
* @return the <code>Runtime</code> object associated with the current
* Java application.
*/
public static Runtime getRuntime() {
return currentRuntime;
}
/** Don't let anyone else instantiate this class */
private Runtime() {}
powraca to samo wystąpienie za każdym razem i ma konstruktor private
.
Należy pamiętać, że singletony powinny być używane z ostrożnością i refleksją. Rozważ argumenty przeciwko singletonom i swojej sytuacji przed wdrożeniem. Nadużywanie singletonów to anty-wzór - podobny do zmiennych globalnych.
Używałem ich w przeszłość i zobaczyć pewne korzyści dla nich. Byłem także bardzo zirytowany, gdy próbowałem rozwijać testowo, ponieważ jest to jeden obszar, w którym są złe. Również dziedziczenie z nich powoduje pewne trudne do zrozumienia zachowanie - przynajmniej w Pythonie - nie wiem na pewno w Javie. Zasadniczo po prostu tego nie robisz. Tak jak na początku, wydaje mi się, że to świetny pomysł, a potem wpadasz w pułapki i dobrze sobie radzisz, może to wcale nie jest takie dobre.
To za Swing: SingleFrameApplication. Sprawdź, this presentation to cudownie opisuje, jak to działa.
To nie jest singleton i nie jest częścią standardowego interfejsu API języka Java. – BalusC
Dlaczego myślisz, że to nie jest singleton? – Xorty
Jest to klasa abstrakcyjna i nie ma metody "getInstance()" lub podobnej, która zwraca * self *. Javadoc również nie mówi ani słowa/wskazówki na ten temat.Ta cała klasa bardziej przypomina statyczną fabrykę z dodatkami. – BalusC
- 1. Klasa DataSet w języku Java?
- 2. Klasa monitora w języku Java
- 3. Klasa Singleton z parametrem
- 4. Klasa Static Constructor & Singleton
- 5. Programowanie w języku Java: Prywatna klasa implementacji
- 6. Skręcona klasa wewnętrzna w języku Java
- 7. Klasa Singleton kontra klasa z elementem statycznym
- 8. JavaScript „klasa” i problemy Singleton
- 9. Jednostka miary API w języku Java?
- 10. Wykrywanie mowy w języku Java API
- 11. Klasa klasy ogólnej w polu w języku Java
- 12. Adnotacje Java enum Singleton
- 13. Prosta klasa kolekcji podobna do bazy danych w języku Java
- 14. Jak zainicjować Singleton oparty na enumie Java?
- 15. W jaki sposób klasa singleton może korzystać z interfejsu?
- 16. Czy klasa usług powinna być pojedyncza w java?
- 17. Czy null jest klasą w języku Java?
- 18. Użyj interfejsu API .jar java library w języku C#?
- 19. Parsowanie daty interfejsu API Youtube w języku Java
- 20. Wyjątek "nieporównywalny" w języku Java?
- 21. Java MessageDigest klasa w C#
- 22. Jak analizować negatywnie w języku Java w języku Java
- 23. Biblioteka tłumaczeń w języku Java
- 24. Ukrywanie danych w języku Python Klasa
- 25. Czy istnieje klasa wirtualna w języku C#?
- 26. Java klasa kluczowe
- 27. Klon() w języku Java
- 28. Java Generics - klasa lub klasa <? extends SomeClass>
- 29. Java: extending Klasa obiektu
- 30. java klasa statyczna/zmienne
Kilka z interfejsu Swing/AWT API. Singletons należy stosować ostrożnie. Dlatego nie ma tak wielu w całym Java API – Hardcoded
Możesz mieć wiele obiektów 'Desktop' w tej samej maszynie wirtualnej. W apletach Sun/Oracle JRE z różnych serwisów będą występować różne "pulpity". 'Runtime' nie posiada żadnego stanu, więc przynajmniej nie jest użyteczny singleton (a zauważysz, że jego użycie jest bezcelowe). –
@Tom: 'Pulpit' jest rzeczywiście bardziej multitonem. O 'Runtime', zastanawiałem się to samo ... Muszą mieć * coś * na myśli podczas projektowania go w ciemnych JDK 1.0 wieku. – BalusC