Karşılaştırma Tablosu
Karşılaştırma için temel | Veri Gizleme | kapsülleme |
---|---|---|
Temel | Veri gizleme, veri güvenliği ile birlikte gizlenmenin karmaşıklığı ile ilgili endişelerdir. | Kapsülleme, bir sistemin karmaşıklığını gizlemek için verilerin kaydırılması ile ilgilidir. |
odak | Veri Gizleme, kapsül içindeki verilerin kullanımını kısıtlamaya veya izin vermeye odaklanır. | Kapsülleme, karmaşık verileri sarmaya veya sarmaya odaklanır. |
Erişim Belirteci | Veri gizleme altındaki veriler her zaman özel ve erişilemezdir. | Kapsülleme altındaki veriler özel veya genel olabilir. |
süreç | Veri gizleme, teknik olduğu kadar bir süreçtir. | Kapsülleme, veri gizlemede bir alt işlemdir. |
Veri Gizlemenin Tanımı
Veri gizleme, nesneye yönelik programlamada, bir sınıfın üyelerinin yetkisiz erişime karşı güvenliğini onaylayan bir kavramdır. Veri gizleme, veri üyelerini manipüle edilmekten veya başka herhangi bir kaynaktan saldırıya uğramaktan korumak için kullanılan bir tekniktir. Veriler bir programın en hassas ve değişken içeriği olup, manipüle edildiğinde hatalı bir çıktıyla sonuçlanabilir ve ayrıca verilerin bütünlüğüne zarar verir. Veri gizleme, Java'da erişim değiştiricilerin (özel, genel ve korumalı) yardımı ile kontrol edilir. Genel olan verilere sınıf dışından erişilebilir, bu nedenle verilerinizi gizlemek veya dışarıdan erişilmesini kısıtlamak istiyorsanız verilerinizi özel ilan edin. Özel verilere yalnızca o sınıfın nesneleri tarafından erişilebilir.
Bir örnek yardımı ile saklanan verileri anlayalım. Bir CheckAccount sınıfı bildirdiğinizi ve bu sınıf içinde bir veri üyesi bakiyeniz olduğunu varsayalım. Burada bir hesap bakiyesi hassas bilgidir. Bir dış uygulamanın bir hesabın içindeki bakiyeyi kontrol etmesine izin verebilirsiniz, ancak bir dış uygulamanın bakiye niteliğini değiştirmesine izin vermezsiniz. Bu nedenle, özel bakiye özniteliğini beyan etmek, dış bir uygulamadan bakiye erişimini kısıtlar.
Veri gizleme ayrıca sistemin karmaşıklığını da azaltır. Kapsülleme, veri gizlemenin bir alt işlemi olduğundan kapsülleme yoluyla veri gizleme elde edilebilir.
Kapsülleme Tanımı
Kapsülleme, bir sınıfın karmaşıklığını gizlemek için kodu ve verileri bir kapsülde birbirine bağlamaktır. Enkapsülasyonun erişim belirleyicileri (özel, halka açık ve korumalı) ile ilgisi yoktur. Bir sınıf içindeki kapsülleme üyelerinde özel, genel veya korumalı olabilir . Bir sınıfın özel üyelerine yalnızca o sınıfın nesnelerine erişilebilir ve genel üyelere sınıfın nesnelerine erişilebilir, ayrıca sınıf dışından da erişilebilir. Kapsülleme, bir sistemin son kullanıcısının, nasıl yapılması gerektiği yerine sistemle ne yapacağını öğrenmesine yardımcı olur.
Bir araba örneği yardımıyla kapsüllemeyi anlayalım. Bir arabanın şoförü arabanın donanımını değiştirmek istiyorsa, ihtiyacı olan şey sadece arabanın karaciğeri çalıştırma dişlilerinin konumunu değiştirmek ve böylece bir arabanın donanımını değiştirmektir. Bir sürücünün, vites değiştirmenin arkasında yatan mekanizmanın ne kadar karmaşık olduğunu anlaması gerekmez. Bu, kapsülleme bir sistemin karmaşıklığını nasıl azalttığını gösterir. Kapsülleme, sistemin son kullanıcı tarafından çalıştırılmasını kolaylaştırır.
Veri Gizleme ve Kapsülleme Arasındaki Temel Farklılıklar
- Kapsülleme, bir programın karmaşıklığını gizleme ile ilgilidir. Öte yandan, veri gizleme bir programdaki verilerin güvenliği ile ilgilidir.
- Kapsülleme, kullanıcı için daha basit bir görünüm sunmak için karmaşık verileri sarmaya (kapsüllenmeye) odaklanır. Öte yandan, veri gizleme, veri güvenliğini sağlama amaçlı veri kullanımını kısıtlamaya odaklanmaktadır.
- Kapsülleme verilerinde genel veya özel olabilir, ancak verilerin gizlenmesinde veriler yalnızca özel olmalıdır.
- Veri gizleme bir teknik olduğu kadar bir süreçtir, oysa kapsülleme veri gizlemede alt işlemdir .
Sonuç:
Bir sistemin uygulanmasında hem veri gizlemenin hem de kapsüllemenin önemli olduğunu söyleyerek sonuç veriyorum. Her ikisi de, verilerin gizlenmesinin veri güvenliğine odaklandığı yerlerde, enkapsülasyon, uygulamayı daha kullanıcı dostu hale getirmek için sistemin karmaşıklığını azaltmaya odaklanır.