Java Script to specyficzny język programowania. Brak klas i nietypowe dziedziczenie prototypowe to główne cechy tej technologii. Przez długi czas nie istniały precyzyjne zasady pozwalające na tworzenie kody wysokiej jakości. Przez wiele lat Java Script nosił miano, słabego i podatnego na błędy języka, który wybaczał wiele początkującym programistom. Aktualnie coraz większa liczba bibliotek i stworzenie wspólnych standardów pozwoliły na ustanowienie solidnej pozycji Java Scriptu w internecie.
Organizacja kodu
Jeden z najpopularniejszych sposobów organizacji kodu Java Script opisuje wzorzec modułu. Niestety Java Script nie udostępnia ani zmiennych prywatnych, ani klasycznego dziedziczenia. Jednak programiści przygotowali odpowiedni sposób zapisu kodu w celu osiągnięcia konkretnych korzyści.
var aya = aya || {};
aya.framework = function() {
	// private property
	var version = '0.0.2';
	// private method
	var getVersion = function() {
		return version;
	}
	// all returned is a public
	return {
		// initialization
		init: function() {
			console.log('init successful...');
		},
		printModuleVersion: function() {
			console.log('Version: ' + getVersion());
		}
	}
}();Przygotowany w ten sposób obiekt przechowuje wewnątrz pewne zmienne jako prywatne.
Natomiast kod zwracany jest traktowany jako publiczny. Ten prosty sposób pozwala
na ukrycie części implementacji i dostęp spoza samego obiektu.
aya.framework.init();Jak się spodziewamy w konsoli wyświetli się informacja o inicjalizacji obiektu.
aya.framework.printModuleVersion();Podobnie będzie, kiedy sprawdzimy wersję naszego obiektu, ale możliwe będzie to
jedynie poprzez publiczną metodę.
aya.framework.getVersion();Próba uzyzkania wersji przy użyciu metody prywatnej poza obiektem, kończy się 
błędem, czyli dokładnie jak powinno.
> TypeError: Object #<Object> has no method 'getVersion'Podsumowanie
Prosty, rekomendowany sposób organizacji kodu dla Twoich aplikacji. Modułowa struktura porządkująca przydatna nawet w małych projektach. Nie zaśmiecaj więcej globalnej przestrzeni nazw. Stosuj wzorzec modułu.
 
		
3 odpowiedzi na “Wzorzec modułu”
Jako uzupełnienie:
http://addyosmani.com/resources/essentialjsdesignpatterns/book/#modulepatternjavascript
Bardzo dobre uzupełnienie. Czytałem jego książkę na temat Backbone. Teraz jestem na etapie Java Script: The Good Parts Douglasa Crockforda. Świetne materiału do zaawansowanego programowania w Java Script.
Fajny przykład :) Właśnie tworzę sobie taki moduł. Zauważyłem że starsze przeglądarki z taką wersją mają problemy np. IE8. To margines wiadomo i można nie przejmować się. Gdzie można sprawdzić od której wersji IE i inne przeglądarki obsługują taką postać budowy modułów?