Javascript Module Pattern ve Encapsulation
Modüller, genellikle içerisindeki fonksiyonları diğer bileşenlerden bağımsız olarak saklamak için kullanılır. Nesne yönelimli açıdan baktığımızda “modül” JavaScript sınıfıdır ve “encapsulation” yapmamızı sağlar.
Encapsulation, modüle ait davranışların; fonksiyonlar ve metotların erişilebilir olmasını/olmamasını sağlar.
Referans kodumuz aşağıdadır.
Modül içerisinde değişken ve metotlarımızı tanımladıktan sonra, return bölümüne Object Literal olarak dışarıya açacağımız metot ve değişkenlerimizi belirtiyoruz.
Kullanım şekli:
Kısaca Object Literal’den bahsedelim. Birbirlerinden virgül ile ayrılmış, isim-değer (name-value) çiftleridir. Örnek:
Basit bir modül oluşturarak konuyu bitirelim.
Öncelikle modal ile ilgili işlemlerimizi tanımladık; modal cover oluşturmak ve silmek için gereken kodları yazdık (createModalCover — removeModalCover). Daha sonra modal penceresiniz açma / kapama işlemlerimizi tanımladık (open / close). Bu açma kapama işlemerini de return bölümünde dışarıdan erişilebilir hale getirdik.
Kullanımı:
Önemli Not: Modül içerisinde kullanılan primitif tipteki değişkenlerin public hale getirdiğimizde, modül içerisindeki değişkenlerin değerleri aynı kalır fakat bunların bir kopyası oluşturulur ve kopya üzerinden ilerlenir.
Örnek:
Şimdi publicVariable değerini değiştirelim.
Burada publicVariable’ın bir kopyası oluşturuldu, modül içerisindeki publicVariable değeri aynı kaldı. Modül oluşturulurken, dışarıya açılan özellikler metodlar olmalıdır. Değişkenlerin değerleri ile ilgili public işlemler modül içerisinde get/set metodları ile yapılmalıdır.