C# ile Dependency Injection ve Loosely Coupling

By Burak TUNGUT - 6.5.2013 - 1 Yorum - Kategori C#

Düzgün ve detaylı bir analiz yapılmadan geliştirme sürecine geçilmiş bir çok projenin eninde sonunda başvurduğu nadide yöntemlerden biridir Dependency Injection.

Dependency Injection ve Loosely Coupling Genellikle geliştirme sürecinde ihtiyaç duyulan gereksinimlere göre yapılan projelerde bir sorun görülmese de, zamanla ihtiyaçların artacağı ve sıkı bağlı tipler ile geliştirilmiş projelerde ciddi sıkıntılar yaşanabilmektedir.

Az önce güzel bir anahtar kelimeden bahsetti; sıkı bağlı!
Aslında biz bu anahtar kelimeden ziyade, bunun tam tersi ile ilgileniyor olacağız. Yani; gevşek bağlı (Loosely Coupled).

Gevşek bağlı tipler ile çalışmanın en büyük faydası projenin ilerleyen zamanlarda gelişime açık ve rahatça revize edilebilmesidir.

Konuyu ilk hakimiyeti sağlamanın en güzel yolu kanımca göresellerdir. Bunun için yandaki gibi fareye bağımlı olmuş bir insan elini örnek alabiliriz smiley

Günlük Hayattan Bir Senaryo

Bir proje yapıyor olalım. Bu projenin bir aşamasında da kullanıcının fareyi ara bir tip ile kullanması gerektiğiniz düşünelim.

Proje tahmin edileceği üzere düzgün bir şekilde analiz edilmediği için farenin hiç bozulmayacağı ya da fareden beklenen ihtiyaçların hiç değişmeyeceği düşünüldü. Bu nedenle de sokakta görülen ilk bilgisayarcıdan bir fare alındı ve kullanıcının eline tıpkı resimde olduğu gibi verildi smiley

Bir müddet sonra fark ettik ki elimizdeki fare artık bizim ihtiyaçlarımızı karşılayamıyor. Bu durumda akla gelen ilk çözüm o fareyi atıp, yerine yeni bir fare almak olacaktır. Tabi ki yazılım geliştirme ve revize işlemlerindeki süreçler ne yazık ki günlük hayattan verdiğimiz bu örnekteki gibi olmuyor blush

Senaryonun Yazılım Tarafı

Şimdi ise düşündüğümüz bu senaryoyu C# ile uygulamaya dökelim. Bunun için LogitechMouse adlı bir sınıf tasarlıyor ve içerisinde ekrana kullanılan farenin markasını yazacak Write adlı bir metod yazıyorum.

class LogitechMouse
    {
        public void Write()
        {
            Console.WriteLine("Logitech Mouse Kullanıldı");
        }
    }

Bir de mouse ile kullanıcı arasındaki entegrasyonu sağlayacak ara bir sınıf daha yazıyorum. Bu sınıfımızın adı da MouseManager şeklinde olsun ve içerisindeki Use metodu tetiklendiğin de bir adet LogitechMouse sınıfından instance alsın ve Write metodunu tetiklesin.

Devamı

Eskişehir Osmangazi Üniversitesi The Code Day Etkinliğimiz

By Burak TUNGUT - 4.5.2013 - Kategori Genel

Yazılım Dilleri olarak yıl içerisinde yaptığımız bir çok The Code Day etkinliğini bu haftasonu da Eskişehir Osmangazi Üniversiteinde gerçekleştirdik!

Veysel Uğur KIZMAZ ile beraber gerçekleştirdiğimiz etkinlikte genel olarak Windows Azure, Asp.Net MVC ve uygulamalarından bahsettik.

Eskişehir Osmangazi Üniversitesi Burak TUNGUT

İlk oturumlarda biz aday mühendisler için sektör hakkında bolca bilgi veren Veysel Uğur KIZMAZ ile ilerleyen saatlerde çekilişler ile bir çok öğrenci arkadaşa kitaplarını verdik.

Devamı
1
Facebook
Son Yorumlar