Sizin gibi okuyucular MUO'yu desteklemeye yardımcı oluyor. Sitemizdeki bağlantıları kullanarak bir satın alma işlemi gerçekleştirdiğinizde, bir ortaklık komisyonu kazanabiliriz. Devamını oku.

Oluşturucu tasarım deseni, bir nesnenin özelliklerini kapsar ve onun bir temsilini oluşturmanıza olanak tanır. Bu model, aynı sınıfa ait olsalar bile farklı özelliklere sahip karmaşık nesneler oluşturmanıza olanak tanır.

Tipik bir nesne sınıfı öznitelikleri, yapıcıları ve yöntemleri içerir. Oluşturucu modeli, nesne sınıfından oluşturma mantığını çıkarmanıza ve onu oluşturucular adı verilen sınıflara yerleştirmenize olanak tanır. Daha sonra, aynı nesnenin farklı varyasyonlarını oluşturmak için bu oluşturucu sınıflarını kullanabilirsiniz.

Oluşturucu Kalıbını Java'da Uygulama

Oluşturucu modeline iyi bir örnek, müşterilerin farklı sos seçenekleri seçmesine izin veren bir pizza sipariş sistemidir.

Ürün Sınıfı

Bir yaklaşım, oluşturucuyu bir arabirim yapmaktır, ancak önce bir ürün sınıfı oluşturmanız gerekir. Bu örnek uygulamadaki ürün bir pizzadır.

instagram viewer
halksınıfPizza{
// özellikler
özelint sipariş numarası;
özel Sicim Pizza hamuru;
özel Sicim Süsleme;

// alıcılar ve ayarlayıcılar
halkintalSiparişNumarası(){
geri dönmek sipariş numarası;
}

halkgeçersizSiparişNumarasını ayarla(int sipariş numarası){
Bu.orderNumber = siparişNumarası;
}

halk Sicim olsunPizza Hamuru(){
geri dönmek Pizza hamuru;
}

halkgeçersizsetPizza Hamuru(İp pizza Hamuru){
Bu.pizzaDough = pizza Hamuru;
}

halk Sicim Toplamak(){
geri dönmek Süsleme;
}

halkgeçersizsetTopping(Dize tepesi){
Bu.tepeleme = tepeleme;
}
}

Oluşturucu Sınıfı

Pizza Java sınıfı üç özelliği ve bunların ilgili alıcıları ve ayarlayıcıları vardır, ancak yapıcı yöntemler. Oluşturucu arayüzü, pizza nesnesinin her bir yönünü ayrı ayrı oluşturmanıza izin verecektir. Daha sonra tüm pizza nesnesini almanıza izin verecektir.

halkarayüzOluşturucu{
halkgeçersizPizza Hamuru oluştur();
halkgeçersizYaratmak();
halk Pizza olsunPizza();
}

Örnek pizza uygulaması, müşterilerin peynir, sucuk, soğan veya farklı kombinasyonlar gibi sosları sipariş etmelerine olanak tanır. Bu nedenle müşterinin sipariş edeceği bir pizza peynirdir.

halksınıfCheesePizza OluşturucuuygularOluşturucu{
özel Pizza pizza;

halkCheesePizza Oluşturucu(){
Bu.pizza = yeni Pizza();
}

@geçersiz kıl
halkgeçersizPizza Hamuru oluştur(){
Bu.pizza.setPizza Hamuru("Hamur");
}

@geçersiz kıl
halkgeçersizYaratmak(){
Bu.pizza.setÜst kaplama("Peynir");
}

@geçersiz kıl
halk Pizza olsunPizza(){
geri dönmekBu.Pizza;
}
}

CheesePizzaBuilder sınıfı, Builder arabirimini uygular ve onu yeni bir peynirli pizza oluşturmak için kullanır. Bu, Pizza nesnesinin bir temsilidir. Bunu da Pizza sınıfından bağımsız bir şekilde yapıyor.

CheesePizzaBuilder sınıfı, Pizza sınıfı hakkında pek bir şey bilmez, yalnızca işlevini tamamlamak için bilmesi gerekenleri bilir. Pizza sınıfının bir hamur ve kaplama özelliğine sahip olduğunu bilir ve bu özellikleri her peynirli pizzanın sahip olacağı iki özel değere ayarlar. Artık uygulama CheesePizzaBuilder sınıfını her çağırdığında, üzeri peynir olan yeni bir Pizza yaratacaktır.

Yönetmen Sınıfı

Yönetmen sınıfı, oluşturucu modelinin çok önemli bir yönüdür. Beton oluşturucu sınıfının tek amacı, belirli bir nesne yaratmaktır. Bunu, bir nesnenin farklı kısımlarını ayrı ayrı oluşturarak gerçekleştirir.

Ancak, oluşturucu beton sınıfları algoritmadan habersizdir. İnşaatçı sınıfların hiçbiri, malzemeyi eklemeden önce hamuru yapmayı bilmiyor. Bu, yönetmen sınıfının işlevidir.

halksınıfMüdür{
özel Oluşturucu pizza Oluşturucu;

halkMüdür(Oluşturucu pizza Oluşturucu){
Bu.pizzaBuilder = pizzaBuilder;
}

halk Pizza olsunPizza(){
geri dönmekBu.pizzaBuilder.getPizza();
}

halkgeçersizPizza yapmak(){
Bu.pizzaBuilder.createPizzaHamuru();
Bu.pizzaBuilder.createTopping();
}
}

Director sınıfı, pizza yapmak için oluşturucu arabirimini kullanır. Algoritmanın koruyucusudur.

Oluşturucu Tasarım Modelini Kullanmanın Avantajları

Oluşturucu tasarım modelini kullanmanın en büyük avantajı, kapsülleme özelliğidir. Bu, güvenli uygulamaların geliştirilmesine yardımcı olduğu için yazılım mühendisliğinin çok önemli bir yönüdür.

Bu tasarım modelinin bir başka avantajı da nesne oluşturma yaklaşımıdır. Hata ayıklamayı kolaylaştıran her adımın bağımsız olduğu çok adımlı süreçler oluşturmanıza olanak tanır.