C++'da Fabrika Kalıbı

C Da Fabrika Kalibi



Fabrika Kalıbı, nasıl yaratıldıklarının özel ayrıntılarını bilmek zorunda kalmadan yazılım geliştirmede nesneler yaratmanın bir yoludur. Karmaşık oluşturma mantığını bir fabrika sınıfının arkasına gizleyerek nesne oluşturmak için basitleştirilmiş bir arabirim sağlar. Nesne yaratma mekanizmalarını ele alan tasarım modelleri kategorisine aittir. Bu makale, C++'daki fabrika modellerini kapsar.

Fabrika Kalıbına Giriş

Tasarım deseni, yazılım tasarımında tekrar eden sorunları çözme yöntemidir. Fabrika Kalıbı, nesneleri esnek ve ayrıştırılmış bir şekilde yaratmaya yardımcı olan tasarım kalıplarından biridir.

Fabrika Kalıbı, C++'da, nesnenin sınıfını açıkça bilmeden nesne yaratılmasına izin veren yaratıcı bir tasarım modelidir. Karmaşık nesne oluşturma mantığını ayrı bir fabrika sınıfı içinde kapsüllemenin bir yolunu sağlar. Bu, nesnenin belirli sınıfının çalışma zamanında belirlendiği, nesneleri oluşturmak için ortak bir arabirim tanımlayarak yapılır.







Doğrudan bir nesne oluşturmak yerine, fabrika yöntemini kullanarak bize istediğimiz nesnenin bir örneğini veririz. Bu şekilde, nesneyi oluşturmadaki karmaşık adımları gizleyebilir ve gelecekte nesneyi değiştirmeyi veya düzenlemeyi kolaylaştırabiliriz.



Neden Fabrika Kalıbını kullanıyorsunuz?

Fabrika modelini kullanmak istememizin birkaç nedeni var. Bunun bir nedeni, kodun belirli sınıflardan ayrıştırılmasına izin vermesidir. Bir fabrika yöntemi kullanarak, başka bir kodu değiştirmek zorunda kalmadan bir sınıfı diğerine kolayca değiştirebilir ve daha verimli hale getirebiliriz.



Fabrika kalıbını kullanmanın bir başka nedeni de kodu daha test edilebilir hale getirebilmesidir. Fabrika kalıpları, sahte nesneler oluşturarak kodu test etmemizi sağlar.





Fabrika kalıbının C++'da kullanılmasının diğer nedenlerinden bazıları şunlardır:

  • Fabrika Yöntemi modeli, bir sınıf hangi nesneleri oluşturması gerektiğini önceden bilmediğinde kullanılır.
  • Model, bir sınıf, oluşturduğu nesneleri belirtmek için kendi alt sınıflarına güvendiğinde kullanılır.
  • Karmaşık bir nesneyi tek bir yerde yaratma mantığını özetlemek istediğinizde kullanışlıdır.

C++'da Fabrika Kalıbı Örneği

C++'da, sanal fabrika yöntemiyle soyut bir temel sınıf tanımlayarak fabrika modelini uygulayabiliriz. Bu yöntem, istenen sınıf örneğine bir işaretçi döndürmelidir. Bundan sonra, bu temel sınıftan somut sınıflar türetebilir ve uygun sınıfın bir örneğini döndürmek için fabrika yöntemini geçersiz kılabiliriz.



İşte fabrika modelinin bu uygulamasını nasıl kullanabileceğimize dair bir örnek:

#include

ad alanı std'sini kullanma ;

sınıf Şekil {

halk :

sanal geçersiz çizmek ( ) = 0 ;

statik Şekil * şekil oluştur ( int tip ) ;

} ;

sınıf Çember : halka açık Şekil {

halk :

geçersiz çizmek ( ) {

cout << 'Bir daire çizmek.' << son ;

}

} ;

sınıf Dikdörtgen : halka açık Şekil {

halk :

geçersiz çizmek ( ) {

cout << 'Dikdörtgen çizmek.' << son ;

}

} ;

Şekil * Şekil :: şekil oluştur ( int tip ) {

eğer ( tip == 1 ) {
geri dönmek yeni Çevre ( ) ;
} başka eğer ( tip == 2 ) {
geri dönmek yeni Dikdörtgen ( ) ;
} başka {
geri dönmek nullptr ;
}
}


int ana ( ) {

Şekil * daire = Şekil :: şekil oluştur ( 1 ) ;

daire -> çizmek ( ) ;

Şekil * dikdörtgen = Şekil :: şekil oluştur ( 2 ) ;

dikdörtgen -> çizmek ( ) ;

geri dönmek 0 ;

}

Bu örnekte, iki türetilmiş sınıfa sahip bir Shape sınıfımız var: Circle ve Rectangle. Shape sınıfı, türetilmiş sınıflar tarafından uygulanan saf bir sanal fonksiyon draw()'a sahiptir. Shape sınıfı ayrıca, belirtilen türe göre türetilmiş sınıfların örneklerini oluşturmak için bir fabrika yöntemi olarak işlev gören bir statik işlev createShape(int type) içerir. Draw() işlevi, belirli davranışlarını göstermek için oluşturulan nesnelerde çağrılır.

  metin, yazı tipi, ekran görüntüsü içeren bir resim Açıklama otomatik olarak oluşturuldu

Çözüm

Fabrika Kalıbı, C++'da, nesnenin sınıfını açıkça bilmeden nesne yaratılmasına izin veren yaratıcı bir tasarım modelidir. Karmaşık oluşturma mantığını bir fabrika sınıfının arkasına gizleyerek nesne oluşturmak için basitleştirilmiş bir arabirim sağlar. Bu, nesnenin belirli sınıfının çalışma zamanında belirlendiği, nesneleri oluşturmak için ortak bir arabirim tanımlayarak yapılır. Bu makaledeki fabrika kalıpları hakkında daha fazla bilgi edinin.