Czy ktoś może mi pomóc w zrozumieniu korzyści wynikające z zastosowania System.Lazy z Singleton Pattern Design.Co jest System.Lazy <T> i Wzorzec Singleton Projektowanie
Odpowiedz
Najlepszym źródłem na C# singletons (obejmuje również Lazy<>
) należy do Jon Skeet: http://csharpindepth.com/Articles/General/Singleton.aspx
Załóżmy, że chcesz mieć klasę, która:
- reprezentuje unikalny zasób, więc powinien mieć unikalna instancja,
- wystąpienie wymaga kosztownej inicjalizacji,
- parametry inicjowania będą dostępne tylko w czasie wykonywania,
- istnieją przypadki, które nie będą korzystać z obiektu Wszakże
- istnieje więcej niż jeden wątków, które mogą próbować zainicjować obiektu singleton jednocześnie
- itp
Jeśli większość z powyższych warunki są prawdziwe, musisz upewnić się, że klasa jest Singleton, a unikalna instancja jest leniwie inicjowana (niezainicjowana, dopóki nie jest potrzebna). Jeśli wybierzesz C# 4.0 lub nowszy, użycie Lazy<>
uprości Twój projekt, będzie bardziej czytelny i łatwiejszy do zapamiętania.
Docs powiedzieć
pomocą wystąpienie Łazach (z T), aby opóźnić tworzenie obiektu lub dużych zasobochłonnych lub wykonanie zasobochłonnych zadania, w szczególności gdy tworzenie lub wykonanie może nie wystąpić podczas okresu istnienia programu.
Tworzenie instancji singleton tylko wtedy, gdy jest to potrzebne.
Lazy inicjacja jest ogólnie przydatna, więc wszystkie koszty tworzenia nie są płacone, gdy aplikacja insitialises - może dać przyjemniejsze wrażenia użytkownika.
- 1. System.Lazy <T> i System.Threading.LazyThreadSafetyMode Enumeration
- 2. Co to jest Singleton Type?
- 3. Co to jest projektowanie zorientowane na dane?
- 4. Co to jest alternatywa dla Singleton
- 5. Emit wywołanie System.Lazy <T> konstruktora z Mono.Cecil
- 6. Co to jest ten wzorzec inicjalizujący obiekt?
- 7. Co to jest wskaźnik Singleton w C?
- 8. Projektowanie oprogramowania i projektowanie usług internetowych
- 9. Projektowanie i skalowanie kolejki RabbitMQ
- 10. co jest wzorzec wyrażenia regularnego dla wielowierszowego (logstash)
- 11. <% $, <% @, <% =, <% # ... o co chodzi?
- 12. Enums, Singleton i Deserialization
- 13. Singleton i wyjątek
- 14. Jak zsynchronizować wzorzec i pochodzenie/wzorzec używając egit w eclipse?
- 15. Jaki jest wzorzec projektowy Hexagon
- 16. Jaka jest różnica między << i + =?
- 17. Wzorzec specyfikacji i wydajność
- 18. Organizacja i projektowanie plików JavaScript
- 19. Co to jest element <span></span>?
- 20. Co to jest <% = lub <%: wywoływane w ASP.NET?
- 21. Używając vima, co to jest "<,'>"?
- 22. Co to jest Vec <_>?
- 23. Dlaczego wzorzec interpretera jest zasysany?
- 24. JavaScript „klasa” i problemy Singleton
- 25. NodeJS - Singleton + Wydarzenia
- 26. Php co znaczy <<<?
- 27. Co oznacza operator Bash <<<?
- 28. Zamień wzorzec i gałąź funkcji
- 29. Co oznaczają symbole makefile $ @ i $ <?
- 30. Klasa Static Constructor & Singleton
Czy masz jakieś odniesienia do tych terminów? Jestem pewien, że cokolwiek definiuje, może mieć kilka przykładów ... –