Widziałem to w niektórych projektach, Module Pattern
używa zamiast Singleton Pattern
i na odwrót.Różne między wzorem modułu a wzorem singletowym?
Chciałbym wiedzieć dokładnie, jaka jest różnica między Module Pattern
i Singleton Pattern
?
Widziałem to w niektórych projektach, Module Pattern
używa zamiast Singleton Pattern
i na odwrót.Różne między wzorem modułu a wzorem singletowym?
Chciałbym wiedzieć dokładnie, jaka jest różnica między Module Pattern
i Singleton Pattern
?
Module pattern w javascript odnosi się do modularyzacji kodu dla wspólnego mechanizmu. Działa całkiem dobrze, aby podzielić jedną "klasę" na kilka plików, ponieważ można samodzielnie zdefiniować konstruktora i różne grupy metod prototypowych. Każdy z modułów jest zazwyczaj zawijany wewnątrz zamknięcia w celu utworzenia statycznych zmiennych lokalnych - jest to nazywane ujawniające wzór modułu.
Singleton pattern w javascript odnosi się do ograniczenia tworzenia instancji, często za pomocą lazy initialisation.
Oczywiście można wziąć pod uwagę, że wzorzec modułu jest specjalizacją wzorca singleton (patrz Wikipedia article), wówczas konstruktor i jego prototypowy obiekt zajmowałby wówczas część "pojedynczego wystąpienia".
Jednak można również łączyć je "niezależnie": moduł, który definiuje klasę, która używa podejścia singleton.
Czy to prawda, że używa się 'Wzorca modułu' jako" wzoru Singletona "? –
Oczywiście, możesz także mieć moduł, który po prostu tworzy jeden obiekt singletonowy, bez żadnych klas (bardziej prototypowe podejście) – Bergi
@Bergi Miałem pytanie do dodania do tego: Wzór 'Utilities.game_manager = {functionName: function() {var1, var2 ...}, ...}; 'ukrywa zmienne tak samo, jak robi to wzorzec Module (tzn. nie pokazuje zmiennych wewnątrz właściwości funkcji' Utilities.game_manager') . Czy istnieje zatem różnica między tym a wzorcem modułu? Chodzi mi o to, że Wzorzec Modułu Odkrywania zwraca funkcje, które mogą odsłonić ukryte zmienne, ale możesz to zrobić za pomocą wzoru, który właśnie pokazałem. – Growler
Proszę spojrzeć na to: http://addyosmani.com/resources/essentialjsdesignpatterns/book/#designpatternsjavascript – Teemu
@Teemu Jest to dobry dokument, ale nie wyjaśnia różnic między nimi. –
różne nazwy lub implementacje dla nonsensu? –