C# ile Kapsülleme (encapsulation)

Yazılımcıların sıklıkla kullandıkları bir yapıdır “encapsulation” veya kapsülleme. Peki nedir bu encapsulation. Kapsülleme belirtilen nesneye  doğrudan erişimi engeller. Peki bunu nasıl yapar. get ve set metotları yardımıyla belirtilen nesneye doğrudan erişilmeyi sağlar ve bunun yanında veri kontrolü yapmamızı sağlar. Örneğin bir ders puanı sıfırdan küçük 100 den büyük olamaz veya bir karalistedeki isimler ile kayıt yapılmamasını sağlar. C# ile bir kapsülleme örneğini oluşturmaya çalışalım. Örnekte bir kişinin doğum tarihi şimdiki tarihe veya önceki bir tarihe eşitse kayıt yapsın şuandan daha ileri tarih yazılırsa default olarak kayıt tarihi eklensin.
namespace Encapsulation
{
    class Personel
    {
        public string adi;        

        private DateTime dogumTarihi;

        public DateTime DogumTarihi
        {
            get { return dogumTarihi; }
            set
            {
                if (value<= DateTime.Now)
                {
                    dogumTarihi = value;
                }
                else
                {
                    dogumTarihi = DateTime.Now; 
                }
                 }
        }

        private int yas;

        public int Yas
        {
            get
            {
                return (int)((DateTime.Now - DogumTarihi).TotalDays / 365);
            
            }
          
        }
    }

}
Kapsülleme ile bir kontrol mekanizması oluşturulabilir ve kayıt işlemleri daha veritabanına gitmeden önce kontrolü sağlanabilir. Örneğin bir hoca öğrencisini dersten geçirmek için 100 den fazla puan girmek isterse encapsulation da set içinde tanımlanan kontrol ile bu engellenmiş olur. Kayıt set metoduna geldiği zaman (value)  doğum tarihi kontrole edilir ve zaman kontrolü yapılır ve buaradaki kontrole göre get metodunda döndürülür.

Hiç yorum yok:

Yorum Gönder