1 min read

Encapsulation hakkında

Bu yazıda yazılım mimarilerinin geliştirilmesinde önemli bir yeri olan Encapsulation kavramını inceleyeceğiz.
Encapsulation hakkında

Yazılımlar artık bildiğiniz gibi binalar gibi inşa ediliyor. Yani ufak bloklar üst üste konularak, hem kontrollü hem de gelişmeye açık olacak şekilde diziliyor. İşte bu şekilde yazılım inşa edebilmek için bilmemiz gereken önemli kavramlar var. Bu yazıda bunların en önemlilerden biri olan Encapsulation kavramını inceleyeceğiz.

Encapsulation nedir?

Ecapsulation derken sınıfların kendi verilerinin(state) tek sahibi olmasını kastederiz. Bu bilgiyi sahibi dışında kimse direkt olarak erişemez ve değiştiremez.

Sınıfın içişlerine(state) direkt müdahale edilemez

Yazdığınız uygulamada her işi farklı bir sınıfın yapması çok önemli. Eğer başka bir sınıf tarafından erişim isteniyorsa bunu bu sınıfın public metotları üzerinden yapabilmeli. Bu sayede kontrol tamamen state'in sahibi olan class'ta kalmış olur.

Yani sizin yazdığınız sınıfın durumu(state, property, member vs) bir başkasının yazdığı sınıf tarafından direkt olarak erişip değiştirilebilsiyse, bunun aslında hiç mümkün olmaması gerekirdi.

Sınıflar birbirini ismiyle çağıramaz

Sınıflar bir diğerinin metotlarını çağırırken interface isimleri ile referans vermeli. Bu sayede çağrılan sınıfın ismi bile değişse onu çağıran sınıf bundan etkilenmez, çalışması sekteye uğramaz.

Yani bir başkasının yaptığı güncelleme sizin kodunuzun çalışmasını durduk yerde bozuyorsa, bu kural ihlal ediliyor demektir.