1. Ana Sayfa
  2. C#
  3. Database Connection Factory Design Pattern in C#

Database Connection Factory Design Pattern in C#

Connection Factory Design Pattern


JFORCE - Dell Technologies İşbirliği Başlıyor!

Merhaba bu makalemde herhangi bir database’den bağımsız tüm database tipleri için ortak kullanılabilen IDbConnection tipinde bir ’ı kullandığımız database’e göre nasıl üretebiliriz onu anlatmak istiyorum.

Öncelikle bunun için bir factory interface’e ihtiyacımız var.

Burada bu interface’den türetilecek class’ların bize bir IDbConnection dönmesini zorunlu kılıyoruz ve oluşacak class’ımızda Dispose() methodu da zorunlu olacak.

Şimdi yine database’den bağımsız database bilgisi verildiğinde bize bir IDbConnection dönebilen bir factory base yaratalım. Ama bu class’ımız öyle bir class olsun ki Connection yaratsın fakat bu connection’ın hangi database’e ait olduğu bilgisi alt class’lar tarafından verilsin. Burada database bilgisini getiren bir method yapıp bu method’u soyutlaştırmalıyız.

 

Burada kullandığımız

methodu’ı bir abstract method’dur ve hangi provider’ın çağırılacağı alt class’lara bırakılmıştır.

Örneğin buradaki base class’ı kullanarak postgresql için bir connection class’ı tasarlamak istediğimizde yapacağımız işlem şu şekildedir.

Sadece abstract olarak tasarlanan GetProviderFactory method’umuzun içerisini postgresql’e göre tasarlayarak sorunumuzu çözmüş olduk.

Şimdi tek eksiğimiz;

DbProviderFactories.GetDbProviderFactory(DataAccessProviderTypes.PostgreSql); yapısının nasıl çalıştığını anlamak kaldı.

Burada üzerinden Type bilgisi gönderilen database provider’ını dönen bir provider factory yazmış olduk burada da.

Artık Connection Factory yapımız hazır. Bir sonra ki makalemde görüşmek üzere.

Hoşçakalın.

 

Bu konuyla ilgili sorularınızı http://forum.mshowto.org linkini kullanarak ulaşacağınız forum sayfamızda sorabilirsiniz.

Referanslar

www.mshowto.org

TAGs : # SQL, Design Patterns, factory method tasarim deseni

JFORCE - Dell Technologies İşbirliği Başlıyor!
Yorum Yap

Yazar Hakkında

Fatih Mert, lisans eğitimini Sakarya Üniversite Bilgisayar Mühendisliği’nde tamamlamıştır. Şu anda Bahçeşehir Üniversitesi’nde Yapay Zeka yüksek lisansı okumaktadır. İş hayatında üniversitenin ilk yıllarında .Net ve Sql Server gibi Microsoft teknolojileri ile başlamış ve sonrasında Xamarin, Azure, Angular ve Flutter gibi teknoljilerle de ilgilenip çeşitli yazılımlar üretmiştir. Arçelik, Doğuş Yayın Grubu, Aygaz, Doğan Medya gibi sektörün önde gelen firmalarında C#, .Net, Sql Server, Xamarin ürünleri ile çalışmış, Design Patterns ve Enterprise Architecture konularıyla uzun süredir uğraşmaktadır. Şu anda Xinerji Software firmasında Yazılım Mimarı ve Ekip Lideri olarak çalışmaktadır.

Yorum Yap

Yorumlar (3)

  1. fatihmert_avatar
    4 hafta önce

    Beynine sağlık Fatih, çok iyi.

  2. fatihmert_avatar

    Tebrikler. Eline emeğine sağlık harika bir paylaşım olmuş.

  3. fatihmert_avatar
    4 hafta önce

    Junior seviyesindeki meslektaşlarımız için muazzam bir makale olmuş. Fatih gibi insanlar bu ülke için değer, umarım kıymetleri bilinir. Çünkü bildiğini paylaşma fırsatı olacak kadar zaman maliyeti yapabilen yazılımcı bir elin parmağını geçmeyecek kadar az.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir