Encapsulation vs Soyutlama
Encapsulation ve Abstraction, OOP (Nesne Yönelimli Programlama) dillerinde bulunan iki farklı ancak ilişkili kavramdır. Kapsülleme, verileri ve davranışı tek bir varlık olarak birleştirme kavramıdır. Öte yandan, Soyutlama, bir varlığın nasıl uygulandığının aksine nasıl davrandığını\göründüğünü sunma sürecidir.
Encapsulation nedir?
Encapsulation, verileri ve bunlar üzerinde çalışan işlemi tek bir varlığa sarma işlemidir. Bu esasen verilere erişmek için önceden tanımlanmış belirli yöntemlerin kullanılması gerektiği anlamına gelir. Başka bir deyişle, kapsüllenmiş verilere doğrudan erişilebilir değildir. Bu, kullanıcının verilere doğrudan erişemediği ve istediği gibi değiştiremediği için verilerin bütünlüğünün korunmasını sağlar. Kullanıcılar, yalnızca kullanıcılara açık olan yöntemlerle veri değerlerini alacak veya ayarlayacaktır. Bu yöntemler genellikle veri doğrulama sağlar, böylece alanlara yalnızca uygun formattaki verilerin eklenmesine izin verilir. Bu nedenle, Kapsüllemenin faydaları üç katlıdır. Kapsülleme aracılığıyla, programcı bir sınıfın alanlarını s alt okunur veya s alt yazılır hale getirebilir. İkinci olarak, bir sınıf kendi alanlarında depolananlar üzerinde tam kontrole sahip olabilir. Son olarak, bir sınıfın kullanıcılarının, verilerinin nasıl depolandığı konusunda endişelenmelerine gerek yoktur. Java'da, programcı tüm örnek değişkenlerinin özel olduğunu bildirebilir ve özel alanlara erişmek ve bunları değiştirmek için alma ve ayarlama yöntemlerini (genel olan) sağlayabilir.
Soyutlama Nedir?
Soyutlama, sunum detaylarını uygulama detaylarından ayırma işlemidir. Bu, geliştiricinin daha karmaşık uygulama ayrıntılarından kurtulması için yapılır. Bunun yerine programcı, varlığın sunumuna veya davranışsal ayrıntılarına odaklanabilir. Basit bir ifadeyle, soyutlama, belirli bir varlığın nasıl uygulandığından ziyade nasıl kullanılabileceğine odaklanır. Soyutlama esasen uygulama ayrıntılarını gizler, böylece uygulama metodolojisi zamanla değişse bile, programcının programını nasıl etkileyeceği konusunda endişelenmesine gerek kalmaz. Bir sistem birkaç katmanda veya seviyede soyutlanabilir. Örneğin, düşük seviyeli soyutlama katmanları donanım detaylarını ortaya çıkarırken, yüksek seviyeli soyutlama sadece varlığın iş mantığını ortaya çıkaracaktır. Soyutlama terimi hem bir varlığa hem de bir sürece atıfta bulunmak için kullanılabilir ve bu bazı karışıklıklara yol açar. Bir süreç olarak soyutlama, bir öğenin veya bir grup öğenin önemsiz ayrıntılarını göz ardı ederken temel ayrıntıları çıkarmak anlamına gelirken, bir varlık olarak soyutlama, yalnızca temel ayrıntılara sahip bir varlığın bir modeli veya görünümü anlamına gelir. Java'da, programcı bir sınıfı gerçek dünya varlığının temel tanımlayıcı özelliklerini temsil eden soyut bir varlık olarak bildirmek için abstract anahtar sözcüğünü kullanabilir.
Kapsülleme ve Soyutlama arasındaki fark nedir?
Encapsulation ve Abstraction, Nesne Yönelimli Programlama dillerinde bulunan oldukça ilişkili kavramlar olsa da, aralarında önemli farklar vardır. Soyutlama, neyin görünür neyin gizlenmesi gerektiğini belirlememize yardımcı olan bir tekniktir. Kapsülleme, görünür olması gerekeni görünür kılacak ve gizlenmesi gerekeni gizleyecek şekilde bilgiyi paketleme teknikleridir. Başka bir deyişle, Kapsülleme, soyutlamanın bir adım ötesinde tanımlanabilir. Soyutlama, gerçek dünya nesnesini temel tanımlayıcı özelliklerine indirgerken, kapsülleme bu fikri, o varlığın bu işlevselliğini modelleyerek ve birbirine bağlayarak genişletir.