2016-03-21 23 views
-3

Yaklaşık 9 yıllık JS deneyimi olan bir arkadaşımla konuşuyordum. Bana bir kod sorunuyla yardım ediyordu ve kapanışlardan ve aynı zamanda javascript fabrikalarından söz ediyordu. Bu terimi daha önce hiç duymamıştım ve "fabrikaların" javascript topluluğunda/dilinde bir şey olup olmadığını merak ediyordum? Eğer öyleyse, biri bana açıklayabilir mi?Javascript: Fabrikalar nelerdir?

Kapatmaların ne olduğunu biliyorum, ancak ona göre "fabrikalar", dili öğrenmede bir sonraki seviye. Wikipedia itibaren

+1

[fabrika kalıbı] (https://addyosmani.com/resources/essentialjsdesignpatterns/book/#factorypatternjavascript) "programlama fabrikası" için – Tushar

+0

hakkında. –

+1

https://en.wikipedia.org/wiki/Factory_(object-oriented_programming) –

cevap

1

: sınıf tabanlı programlamada

, fabrika yöntemi desen tam sınıfını belirtmek zorunda kalmadan nesneleri oluşturma sorunu ile başa çıkmak için fabrika yöntemlerini kullanan bir yaradılış kalıptır nesne oluşturulacak. Bu, bir arabirimde belirtilen ve sınıfları tarafından uygulanan veya türetilmiş sınıflar tarafından isteğe bağlı olarak bir yapıcı çağrılarak değil, isteğe bağlı olarak bir temel sınıfta uygulanan bir fabrika yöntemini çağırarak nesneler oluşturarak yapılır. Learning JavaScript Design Patterns itibaren

:

Fabrika desen nesneleri oluşturma düşüncesiyle ilgili başka yaradılış kalıptır. Kategorisinde diğer desenlerden farklı olması, açıkça bize bir yapıcısını kullanmamızı gerektirmediğidir. Bunun yerine, bir fabrika, için, yaratılmak istenen fabrika nesnesinin türünü belirleyebileceğimiz nesneler oluşturmak için genel bir arayüz sağlayabilir.

UI bileşeninin bir türünü oluşturmak istediğimiz bir UI fabrikamız olduğunu düşünün. Bu bileşeni doğrudan kullanarak yeni operatör veya başka bir oluşturucu kurucu kullanarak oluşturmak yerine, yeni bir bileşen için Fabrika nesnesini soruyoruz. Fabrikayı tipinde bir nesneye ihtiyaç duyduğunu (ör. "Düğme", "Panel") bildirir ve 'u bu şekilde kullanıma sunar. Nesne oluşturma işlemi nispeten karmaşık ise, bu özellikle yararlıdır, örn. dinamik faktörlere veya uygulama yapılandırmasına bağlıysa.

Bu desenin örnekleri, nesneler veya bileşenler oluşturma yöntemlerinin ek olarak alt sınıfının oluşturulduğu ExtJS gibi UI kitaplıklarında bulunabilir.

Örnek:

var Brand = { 
    Daihatsu : function(type) { 
     this.type = type; 
    }, 
    Honda : function(type) { 
     this.type = type; 
    }, 
    Toyota : function(type) { 
     this.type = type; 
    } 
}; 

var Car = { 
    factory : function(brand, type) { 
     return new Brand[brand](type); 
    } 
}; 

var cars = [ 
    Car.factory('Honda', 'Civic'), 
    Car.factory('Toyota', 'AYGO'), 
    Car.factory('Daihatsu', 'Consorte'), 
    Car.factory('Toyota', 'Carina') 
]; 
+0

adresine bakın. fabrika düzeni – saadq

İlgili konular