Encapsulation, oluşturulan sınıfların özelliğini gizlemek için yapılır. Evde televizyonu seyretmek için kumandadan açma düğmesini basmanız yeterli olacaktır. Geriye sadece istediğiniz kanallar arasında zap yapmak kalacaktır. Ancak siz, görüntünün nasıl havadan alındığını, nasıl işlendiğini ve sesin nasıl görüntü ile eş zamanlı olarak çıktığını bilmenize gerek kalmadan rahat rahat televizyon seyredebilirsiniz.
TV üreticileri bütün bu teknik olayları elektronik devreler üzerinde gerçekleştirip bunları da koruma altına almak için bir televizyon kasasına yerleştirmişler.
Sınıflar içinde aynı şey söz konusu. Siz başka bir sınıfın özellik ve metotlarını kullanırken, bunların hangi kodlarla gerçekleştirdiğini bilmenize gerek kalmıyor.
Encapsulation, yazılımı basitleştirmekte ve kodların tekrar kullanılmasını kolaylaştırmaktadır. Çünkü encapsulation ile kullanılan sınıfın ismini ve ne tür özellikler sağladığını bilmek yeterli olacaktır.
import flash.events.Event;
addEventListener(Event.ENTER_FRAME.guncelle);
function guncelle(evtObj:Event):void
{
guncelRenk();
guncelYer();
guncelBoyut();
}
function guncelRenk():void
{
//guncelRenk fonksiyonun içindeki işlev ve özellikler
}
function guncelYer():void
{
//guncelYer fonksiyonun içindeki işlev ve özellikler
}
function guncelBoyut():void
{
//guncelBoyut fonksiyonun içindeki işlev ve özellikler
}Yukarıdaki örnekte olay denetleyicisi “guncelle” adlı fonksiyonu çağırmaktadır. Ancak olay denetleyicisi, “guncelle” fonksiyonun içinde ne olup bittiği ile ilgili hiçbir bilgisi yoktur.
Fonksiyonun içindeki bilgiler bir bakıma olay denetleyicisini ilgilendirmiyor.
Bu “encapsulation” yaklaşımı, aynı zamanda programlama açısından da bir tutarlılık göstergesidir. “guncelle” fonksiyonun içindeki kodlar ya tüm programın doğru çalışmasına ya da programın hata vermesine sebep olacaktır. Böylelikle programcı bir hata meydana geldiğinde ilk bakacağı yer “guncelle” fonksiyonu olacaktır.
Yazan: Muttalip TULGAR