25 Ekim 2011 Salı

Neden Nesne Yönelimli Programlama

Bu makalemde neden Nesne Yönelimli Programlamaya (Object Oriented Programming) ihtiyaç olduğunu örnekle göstermeye çalışacağım.

Mesela örneğimizde 2 tane form olsun ve bu formlarda bir takım ürünler gösterelim. Ürünlerde Televizyon ile Cep Telefonu olsun. Formlarımızda bu ürünlerin özelliklerini ve fiyatını gösterelim. Ürünlerin bir maliyeti olsun ve bu ürünleri kullanıcının seçeceği ödeme seçeneğine göre belli bir kar oranı ile satalım(Peşin Ödeme-Taksitli ödeme).

Form ’un şeklini şöyle yapalım:

Form’a bir PictureBox, 4 tane Label, bir tane ComboBox ve RichTextBox yerleştirdim. PictureBox’un smart tag’ına tıklayarak “Choose Image” linkini tıklayıp, “Local Resource” kısmında “import” kısmına tıklayarak ürün resmini ekledim. Size Mod’unuda “Zoom” olarak ayarladım. Label2’nin ismini “lblÜrün”, Label4’ün ismini “lblFiyat”, ComboBox’ın ismini “cmbSecim” ve RichTextBox’un ismini de “rctÖzellik” olarak değiştirdim. Sonra projeme bir tane daha “Form” ekledikten sonra, aynı kontrolleri aynı şekilde 2. Form’a ekledim.

Bunları ayarladıktan sonra, artık kodlamaya başlayabiliriz.

Ben program çalıştığında 2 Form ’un da aynı anda aktif olmasını istedim. Bu yüzden Form1’in “Shown” event’ini tetikledim, amacım Form1 ekrana çıktıktan hemen sonra Form2’yi ekrana gösterebilmek. Bunu yapmak içinde bir thread yaratıp “form_2” metodunu tetikledim. Thread yaratmamın sebebi Form1 ile Form2 arasına rahatça geçebilmek.

Bu ince kodlamayı gerçekleştirdikten sonra Ürün bilgilerini girebiliriz

Form1’e Televizyon ile ilgili bilgiler girdim. Kullanıcı Combobox’dan seçeceği ödeme şekline göre fiyatı değişecek. Örneğin kullanıcı Peşin ödeme seçerse maliyete %10 kar oranı ekleyerek son fiyatı gösterecek, eğer kullanıcı Taksitli ödeme seçerse %30 kar oranı eklenecek ve son fiyat gösterilecek.(Biraz Tefecilik oldu ama neyse :)

Bu fiyat değişimi Combobox’ın seçimine göre değişeceğine göre, Combobox’ın “Selected Index Change” eventini tetikletiriz:

Kod kalabalığı olmasın diye void tipinde “FiyatHesapla” metodunu oluşturdum ve parametre olarak ta Combobox’tan seçilen değeri gösterdim. FiyatHesapla metodu, kullanıcının seçtiği ödeme tipine göre kar oranını ekleyip, son fiyatı label da göstermekte.

Evet, kodlama bitti. Bu yaptıklarımızı Form2’de cep telefonu ürünü için kopyalayın ve bir takım değişiklikler yapın:


Kodu çalıştırdığımızda:


Sadede gelirsek; Dikkat ettiğiniz gibi Form1’de yaptıklarımızı, Form2’ye kopyaladık ve çalıştırdık. Formlar arasında aynı olanlar ise Kontrol grupları ile kodlamadaki “FiyatHesapla” metodu oldu.

Şimdi şöyle bir senaryo düşünün; sizden 100 tane farklı ürünü göstermeniz istendi, bu durumda siz napacaksınız yüz tane form oluşturup, aynı şeyleri formlara kopyalamak olacaktır. Yani, 100 kere aynı “FiyatHesapla” metodunu oluşturacaksınız. Arkadaşlar, bu olay şuna benzemekte; gardırobunuzda aynı renk, aynı desen ve aynı ebatta olan 100 t-shirt’ünüzün olmasına benzer, hâlbuki size bir t-shirt yetecektir. İşte Nesne Yönelimli Programlama ile bu kod fazlalığını engeller. Sadece bir “FiyatHesapla” metodu tanımlayarak 100 tane formda kullanabiliriz. Böylelikle aynı şeyleri kopyalayıp durmazsınız.

Umarım size faydalı bir makale olmuştur. Bu kadar uzatmamdaki amacım Nesne Yönelimli programlaya ihtiyaç olduğunu örnekle göstermekti. Diğer bir makalemde bu sıkınıtıdan nasıl kurutulacağımızı ve NYP’nin nasıl kullanıldığı göstermek olacak. Herkese iyi günler.

0 yorum:

Yorum Gönder

 
;