Ankara
0 (312) 276 75 93
info@billgatesweb.com

Java Platform Kitaplıkları – Blog Yazma – Web Tasarımı Yapımı – Web Tasarımı YouTube Videosu Yapımı – Web Sitesi Tasarlama Fiyatları

Web Danışmanlık Hizmeti, Seo Hizmeti Al, Mobile Uygulama Yaptır, Back Link Satın Al, Blog Yazdırmak İstiyorum, Makale YAZDIRMA siteleri, Parayla makale YAZDIRMA, Seo makale fiyatları, Sayfa başı yazı yazma ücreti, İngilizce makale yazdırma, Akademik makale YAZDIRMA, Makale Fiyatları 2022, Makale yazma, Blog Yazdırma, Akademik Danışmanlık, Tercüme Danışmanlık

Java Platform Kitaplıkları – Blog Yazma – Web Tasarımı Yapımı – Web Tasarımı YouTube Videosu Yapımı – Web Sitesi Tasarlama Fiyatları

JLabel Sınıfı – Blog Yazma – Web Tasarımı Yapımı – Web Tasarımı YouTube Videosu Yapımı – Web Sitesi Tasarlama Fiyatları

Java Platform Kitaplıkları

Java platform kitaplıklarında bu ilkenin bir dizi bariz ihlali vardır. Örneğin, bir yığın bir vektör değildir, bu nedenle Yığın Vektörü genişletmemelidir. Benzer şekilde, bir özellik listesi bir karma tablo değildir, bu nedenle Özellikler, Hashtable’ı genişletmemelidir. Her iki durumda da kompozisyon uygun olurdu.

Bileşimin uygun olduğu yerlerde kalıtım kullanırsanız, uygulama ayrıntılarını gereksiz yere ortaya çıkarırsınız. Ortaya çıkan API, sizi orijinal uygulamaya bağlar ve sınıfınızın performansını sonsuza kadar sınırlar. Daha da önemlisi, içindekileri açığa çıkararak müşterinin bunlara doğrudan erişmesine izin vermiş olursunuz.

En azından, bu kafa karıştırıcı anlambilime yol açabilir. Örneğin, p bir Properties örneğine atıfta bulunuyorsa, p.getProperty(key), p.get(key) öğesinden farklı sonuçlar verebilir: İlk yöntem varsayılanları hesaba katarken, Hashtable’dan devralınan ikinci yöntem bunu yapar. olumsuzluk.

En önemlisi, istemci, üst sınıfı doğrudan değiştirerek alt sınıfın değişmezlerini bozabilir. Özellikler durumunda, tasarımcılar anahtar ve değer olarak yalnızca dizelere izin verilmesini amaçladılar, ancak temeldeki Hashtable’a doğrudan erişim bu değişmezin ihlal edilmesine izin veriyor.

Bu değişmez ihlal edildiğinde, Özellikler API’sinin diğer bölümlerini kullanmak (yükleme ve depolama) artık mümkün değildir. Bu sorun keşfedildiği zaman, düzeltmek için çok geçti çünkü istemciler dizge dışı anahtarların ve değerlerin kullanımına bağlıydı.

Kompozisyon yerine kalıtımı kullanmaya karar vermeden önce kendinize sormanız gereken son bir soru grubu var. Genişletmeyi düşündüğünüz sınıfın API’sinde herhangi bir kusur var mı? Öyleyse, bu kusurları sınıfınızın API’sine yaymakta rahat mısınız?

Kalıtım, üst sınıfın API’sindeki tüm kusurları yayar, kompozisyon ise bu kusurları gizleyen yeni bir API tasarlamanıza olanak tanır.
Özetlemek gerekirse, kalıtım güçlüdür, ancak kapsüllemeyi ihlal ettiği için sorunludur. Yalnızca alt sınıf ile üst sınıf arasında gerçek bir alt tür ilişkisi bulunduğunda uygundur.

O zaman bile, alt sınıf üst sınıftan farklı bir paketteyse ve üst sınıf genişletme için tasarlanmadıysa kalıtım kırılganlığa yol açabilir. Bu kırılganlığı önlemek için, özellikle bir sarmalayıcı sınıfı uygulamak için uygun bir arabirim varsa, kalıtım yerine oluşturma ve iletme kullanın. Sarmalayıcı sınıflar, alt sınıflardan daha sağlam olmakla kalmaz, aynı zamanda daha güçlüdürler.

Tasarım ve Belgeleme

Madde 14, kalıtım için tasarlanmayan ve belgelenmeyen bir “yabancı” sınıfı alt sınıflamanın tehlikeleri konusunda sizi uyardı. Peki bir sınıfın kalıtım için tasarlanıp belgelenmesi ne anlama geliyor? İlk olarak, sınıf herhangi bir yöntemi geçersiz kılmanın etkilerini tam olarak belgelemelidir.

Başka bir deyişle, sınıf, geçersiz kılınabilir yöntemlerin kendi kullanımını belgelemelidir: Her genel veya korumalı yöntem veya oluşturucu için, belgeleri, geçersiz kılınabilir yöntemleri hangi sırayla çağırdığını ve her bir çağrının sonuçlarının sonraki işlemeyi nasıl etkilediğini belirtmelidir. (Geçersiz kılınabilir ile, nihai olmayan ve genel veya korumalı anlamına gelir.)

Daha genel olarak, bir sınıf, geçersiz kılınabilir bir yöntemi çağırabileceği tüm koşulları belgelemelidir. Örneğin, çağrılar arka plan iş parçacıklarından veya statik başlatıcılardan gelebilir.

Geleneksel olarak, geçersiz kılınabilir yöntemleri çağıran bir yöntem, doc yorumunun sonunda bu çağrıların bir tanımını içerir. Açıklama, “Bu uygulama” ifadesiyle başlar.


Java SE
Java JDK Download
Java SE nedir
Java SE development Kit 18
Java SE Download
Java download
Java JDK Nedir
Java JRE download


Bu ifade, davranışın yayından yayına değişebileceğini belirtmek için alınmamalıdır. Açıklamanın, yöntemin iç işleyişiyle ilgili olduğunu ifade eder.

Bu belge, yineleyici yöntemini geçersiz kılmanın, kaldırma yönteminin davranışını etkileyeceği konusunda hiçbir şüphe bırakmaz. Ayrıca, yineleyici yöntemi tarafından döndürülen Yineleyicinin davranışının, kaldırma yönteminin davranışını nasıl etkileyeceğini tam olarak açıklar.

Bunu, HashSet alt sınıfını oluşturan programcının add yöntemini geçersiz kılmanın addAll yönteminin davranışını etkileyip etkilemeyeceğini söyleyemediği Madde 14’teki durumla karşılaştırın.

Ancak bu, iyi API belgelerinin belirli bir yöntemin ne yaptığını ve nasıl yaptığını açıklamaması gerektiği görüşünü ihlal etmiyor mu? Evet öyle! Bu, mirasın kapsüllemeyi ihlal ettiği gerçeğinin talihsiz bir sonucudur. Bir sınıfı güvenli bir şekilde alt sınıflanabilmesi için belgelemek için, aksi takdirde belirtilmemiş olarak bırakılması gereken uygulama ayrıntılarını açıklamanız gerekir.

Kalıtım için tasarım, yalnızca kendi kendine kullanım kalıplarını belgelemekten fazlasını içerir. Programcıların gereksiz yere zahmetsizce verimli alt sınıflar yazmasına izin vermek için, bir sınıfın akıllıca seçilmiş korumalı yöntemler veya nadir durumlarda korunan alanlar biçiminde kendi iç işleyişine kancalar sağlaması gerekebilir. Örneğin, java.util.AbstractList’ten removeRange yöntemini düşünün.

Bu yöntem, bir List uygulamasının son kullanıcılarının ilgisini çekmez. Yalnızca alt sınıfların alt listeler üzerinde hızlı ve net bir yöntem sağlamasını kolaylaştırmak için sağlanmıştır. RemoveRange yönteminin yokluğunda, alt listelerde clear yöntemi çağrıldığında alt sınıflar ikinci dereceden performansla yetinmek zorunda kalacaktı veya tüm alt Liste mekanizmasını sıfırdan yeniden yazmak kolay bir iş değil!

Peki, kalıtım için bir sınıf tasarlarken hangi korumalı yöntemlerin veya alanların ortaya çıkacağına nasıl karar veriyorsunuz? Maalesef sihirli bir mermi yok. Yapabileceğiniz en iyi şey, çok düşünmek, en iyi tahmininizi yapmak ve ardından bazı alt sınıflar yazarak test etmektir.

Mümkün olduğunca az sayıda korunan yöntem ve alan sağlamalısınız, çünkü her biri bir uygulama ayrıntısına yönelik bir taahhüdü temsil eder. Öte yandan, çok az sağlamamalısınız, çünkü eksik bir korumalı yöntem, bir sınıfı kalıtım için pratik olarak kullanılamaz hale getirebilir.

Geniş kullanım elde etmesi muhtemel bir sınıfı kalıtım için tasarladığınızda, belgelediğiniz kendi kendine kullanım kalıplarına ve korunan yöntem ve alanlarında örtük olan uygulama kararlarına sonsuza kadar bağlı kaldığınızı fark edin. Bu taahhütler, sonraki bir sürümde sınıfın performansını veya işlevselliğini iyileştirmeyi zorlaştırabilir veya imkansız hale getirebilir.

Ayrıca, kalıtım için gereken özel belgelerin, sınıfınızın örneklerini oluşturan ve bunlar üzerinde yöntemler çağıran programcılar için tasarlanmış normal belgeleri karıştırdığını unutmayın. Bu yazı itibariyle, sıradan API belgelerini yalnızca alt sınıfları uygulayan programcıların ilgi alanına giren bilgilerden ayırmak için araçlar veya yorum yapma kuralları konusunda çok az şey vardır.

Bir sınıfın mirasa izin vermek için uyması gereken birkaç kısıtlama daha vardır. Yapıcılar, doğrudan veya dolaylı olarak geçersiz kılınabilir yöntemleri çağırmamalıdır. Bu kural ihlal edilirse, programın başarısız olması muhtemeldir.


Web sitelerinizi, arama motorlarında en yukarı getirmek adına sizlere 3 adet paket öneriyoruz. Bu paketler sayesinde web siteleriniz aramalarda 1 yıl içerisinde en yukarıya tırmanacaktır. 

1) Backlink Paketi  50 $ (Yıllık Ücret)
2) Hızlandırma Paketi 300 $ (Yıllık Ücret)
3) Kelime Yönlendirme Paketi 150 $ (Aylık Ücret)


 

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

× Bize Whatsapp'tan Ulaşın