Object Oriented Programming Events & Delegate Methods (Olaylar ve Delege Methodları) Ders 6

Merhaba,

Bu yazımda başlıktanda anlaşılacağı üzere Events ve Delegate Methods konusunu işleyeceğim. Aslında OOP temelleri arasında ne mantıkla olduğunu bilmesemde zor bir konu olarak düşünülür. Halbuki mantığı ve kullanımı gayet basit bir yapıdır. Kod kısmına geçmeden önce sizlere bir kaç örnek ile konuyu açıklamak istiyorum.

Event = olay

Yani bir durum, olay vs gibi düşünebiliriz. Programlama mantığında düşünür isek misal bir buttona basmamız, buttondan mouse’ı çekmemiz, bir textbox’a yazı yazmamız. Gerçek hayat üzerinden gidersek. Karnımızın acıkması, Yorulmamız, akÅŸam eve yorgun gelmemiz, eÅŸimizle kavga etmemiz…. gibi gibi gibi. Bunların hepsi birer olaydır. Umarım kafamızda bir ÅŸeyler canlanıyordur. Peki ben diyorum ki yukarıda saydığım her bir olayın bir sonraki aÅŸaması olabilirde olmayabilir de. Yani ;

Acıktığımızda yemek yiyebilirizde, yemeyebilirizde

Ya da EÅŸimizle kavga ettikten sonra gidip özür dileyebilirizde dilemeyebilirizde…

Buraya kadar olan mantıkta eğer bir olay oluyor ise olduğu an itibari ile başka bir methodu tetikleme durumu var ise işte bunada Delegate Methods diyoruz.

Yani ;

Olay 1. Acıktık

Delegate method (Acıktıysan yemek yersin)

Method 1 : Yemek ye

Bu örnekten anlaşılacağı üzere eğer bir event bir başka methodu tetikliyor ise bu tetikleme işlemini yapan methoda biz Delegate Method diyoruz.

Kodlamaya başlamadan önce ne yapacağımızı bir planlayalım.

  1. İlk olarak tetikleyici bir mekanizmaya ihtiyacımız var. Yani acıkmamız. Buna birde parametre tanımlayalım. Örn: Mide gurultusu J
  2. Sonrasında Tetikleyiciyi dinleyecek bir mekanizmaya ihtiyacımız var. Yani acıkmama istinaden hemen aksiyon alacak bir yapı. OnAciktiysam
  3. Tetiklenen bir mekanizma lazım. Gel sana yemek ısmarlıyım.

Yapıyı 3 işlem gibi basit bir yapıya indirdik. Şimdi girelim kodumuza ;

İlk olarak mide gurultusunu tanımladık. Buna bizim olayımızın propertyleri  gözü ile bakabiliriz. Yani mide gurultusu, soğuk soğuk terleme, halsizlik gibi. Bunları neden anlatıyorum burada belirttiğimiz tüm propertyleri parametre olarak kullanabiliriz.Bunların hepsi acıkma olayımızın parametreleridir.

Şimdi acıkma işlemimizi ve acıktığımız anda devreye girecek olan öneri yapımızı yazmaya başlayalım.

Buraya kadar olan kısımda ilk olarak mide gurultumuzu tanımladık.Bu datayı parametre olarak alıp gönderebilmek.

Acıkma kontrol methodumuzu oluşturduk. (Bu method bizim main methodumuz yani tüm yapı aslında bu method çalışınca çalışacak şekilde işlemektedir.)

Acıkma kontrol methodumuz çalıştığı anda çalışacak olan onaciktiyasam methodumuzu oluşturduk.

Aslında tüm yapıyı kurduk şimdi sıra geldi çalıştırmaya.

Formumuzun load eventinin içerisine ;

Gördüğümüz üzere formumuz load olduğunda karşımıza bir yes no messagebox’u hemen ardından da onAciktiysam methodunun altındaki

Uyarısı karşımıza gelmektedir.

Umarım yapıyı anlatabilmişimdir. Aslında konu çok basit ancak anlatımlar nedeni ile karmaşık gözükmektedir.

Bu yapı eğer bir database ile çalışıyor iseniz trigger yapısına benzemektedir. Bir insert sonrası git şu işlemi yap gibi. Genelde ben sql tarafında trigger leri kullanmaktayım. Ancak bunu program tarafında yapmak istiyor isek örneğin loglama işlemlerini events ve delegate method kullanımı biçilmiş kaftandır.

Konu hakkında dilediğiniz zaman benimle irtibata geçebilirsiniz. Bir sonraki yazımızda Abstract class yapısını inceleyip üzerine örnekler geliştireceğiz.

İyi Günler Dilerim,