: 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')
];
[fabrika kalıbı] (https://addyosmani.com/resources/essentialjsdesignpatterns/book/#factorypatternjavascript) "programlama fabrikası" için – Tushar
hakkında. –
https://en.wikipedia.org/wiki/Factory_(object-oriented_programming) –