Etiket ve Birleşim – Blog Yazma – Web Tasarımı Yapımı – Web Tasarımı YouTube Videosu Yapımı – Web Sitesi Tasarlama Fiyatları
Etiket ve Birleşim Arasındaki İlişki
Sınıf hiyerarşisinin ayrımcı bir birliğe göre sayısız avantajı vardır. Bunların başında sınıf hiyerarşisinin tip güvenliği sağlaması gelmektedir. Örnekte, her Shape örneği ya geçerli bir Daire ya da geçerli bir Dikdörtgendir.
Etiket ve birleşim arasındaki ilişki dil tarafından zorlanmadığından, tamamen çöp olan bir shape_t yapısı oluşturmak basit bir meseledir. Etiket, shape_t’nin bir dikdörtgeni temsil ettiğini gösteriyorsa ancak birleşme bir daire için ayarlanmışsa, tüm bahisler kapalıdır. Ayrımlı bir birleşim düzgün bir şekilde başlatılmış olsa bile, onu etiket değeri için uygun olmayan bir işleve geçirmek mümkündür.
Sınıf hiyerarşisinin ikinci bir avantajı da kodun basit ve anlaşılır olmasıdır. Ayrımcı birleşim, genel bilgilerle doludur: numaralandırma tipini bildirmek, etiket alanını bildirmek, etiket alanını açmak, beklenmedik etiket değerleriyle uğraşmak ve benzerleridir.
Ayrımcı sendika kodu, çeşitli türler için işlemlerin türe göre ayrılmak yerine iç içe geçmesi gerçeğiyle daha da az okunabilir hale getirilir.
Sınıf hiyerarşisinin üçüncü bir avantajı, bağımsız çalışan birden fazla tarafça bile kolayca genişletilebilir olmasıdır. Bir sınıf hiyerarşisini genişletmek için yeni bir alt sınıf eklemeniz yeterlidir. Üst sınıftaki soyut yöntemlerden birini geçersiz kılmayı unutursanız, derleyici size kesin olarak söyleyecektir.
Ayrımcı bir birliği genişletmek için kaynak koduna erişmeniz gerekir. Ayrımlı birleşimdeki her işlemde, enum türüne yeni bir değer ve ayrıca switch ifadesine yeni bir durum eklemelisiniz. Son olarak, yeniden derlemeniz gerekir. Bir yöntem için yeni bir durum sağlamayı unutursanız, çalışma zamanına kadar ve yalnızca tanınmayan etiket değerlerini kontrol etmeye ve uygun bir hata mesajı oluşturmaya dikkat ederseniz öğrenemezsiniz.
Sınıf hiyerarşisinin dördüncü bir avantajı, daha fazla esneklik ve daha iyi derleme zamanı tür denetimi sağlamak için türler arasındaki doğal hiyerarşik ilişkileri yansıtacak şekilde yapılabilmesidir. Orijinal örnekteki ayrımlı birliğin kareler için de izin verildiğini varsayalım. Sınıf hiyerarşisi, bir karenin özel bir dikdörtgen türü olduğu gerçeğini yansıtacak şekilde yapılabilir (her ikisinin de değişmez olduğu varsayılarak).
Bu örnekteki sınıf hiyerarşisi, ayrımcılığa uğrayan birliğin yerine yazılabilecek tek şey değildir. Hiyerarşi, dikkate değer birkaç tasarım kararını içerir.
Hiyerarşideki sınıflara, Square hariç, erişimci yöntemlerden ziyade kendi alanları üzerinden erişilir. Bu kısalık için yapıldı ve sınıflar halka açık olsaydı kabul edilemez olurdu. Sınıflar değişmezdir, bu her zaman uygun değildir, ancak genellikle iyi bir şeydir.
Java programlama dili birleşim yapısını sağlamadığından, ayrımcı bir birleşim uygulama tehlikesi olmadığını düşünebilirsiniz, ancak aynı dezavantajların çoğuyla kod yazmak mümkündür. Açık bir etiket alanına sahip bir sınıf yazmak istediğinizde, etiketin ortadan kaldırılıp kaldırılamayacağını ve sınıfın bir sınıf hiyerarşisi ile değiştirilip değiştirilemeyeceğini düşünün.
C’nin birleşim yapısının, ayrımcılığa uğramış birleşimlerle tamamen ilgisi olmayan başka bir kullanımı, tür sistemini kasıtlı olarak ihlal eden bir veri parçasının dahili temsiline bakmayı içerir. Bu kullanım, bir şamandıranın makineye özgü onaltılı gösterimini yazdıran aşağıdaki C kodu parçası ile gösterilmiştir.
Özellikle sistem programlama için faydalı olabilse de, bu taşınabilir olmayan kullanımın Java programlama dilinde karşılığı yoktur. Aslında, tür güvenliğini garanti eden ve programcıları makineye özgü dahili temsillerden yalıtmak için büyük çaba sarf eden dilin ruhuna aykırıdır.
Java.lang paketi, kayan nokta sayılarını bit temsillerine çevirmek için yöntemler içerir, ancak bu yöntemler, taşınabilirliği sağlamak için kesin olarak belirlenmiş bir bit gösterimi açısından tanımlanır. Daha önceki C parçasına gevşek bir şekilde eşdeğer olan aşağıdaki kod parçasının, nerede çalıştırılırsa çalıştırılsın aynı sonucu yazdırması garanti edilir.
Spring Boot projesi oluşturma
Java Spring örnek proje
Spring Boot Framework Nedir
Java Spring Örnekleri
Spring Boot Temelleri
Spring Boot Dersleri PDF
Java Spring Eğitimi
Sıfırdan Spring Boot
Yapıları Sınıflarla Değiştirme
C enum yapısı Java programlama dilinden çıkarılmıştır. Nominal olarak, bu yapı, numaralandırılmış bir tür tanımlar: yasal değerleri sabit bir dizi sabitten oluşan bir tür. Ne yazık ki, numaralandırma yapısı, numaralandırılmış türleri tanımlama konusunda pek iyi bir iş çıkarmaz. Yalnızca bir dizi adlandırılmış tamsayı sabiti tanımlar, tür güvenliği açısından hiçbir şey sağlamaz ve kolaylık açısından çok az şey sağlar.
Enum yapısı, ürettiği sabitler için bir ad alanı oluşturmaz. Bu nedenle, adlardan birini yeniden kullanan aşağıdaki bildirim, orange_t bildirimi ile çelişir.
Enum yapısıyla tanımlanan türler kırılgandır. İstemcilerini yeniden derlemeden böyle bir türe sabitler eklemek, önceden var olan tüm sabit değerleri korumaya özen gösterilmedikçe, öngörülemeyen davranışlara neden olur. Yeni numaralandırma sabitlerinin çakışması muhtemel olduğundan, birden çok taraf böyle bir türe bağımsız olarak sabit ekleyemez. Numaralandırma yapısı, numaralandırma sabitlerini yazdırılabilir dizelere çevirmek veya bir türdeki sabitleri sıralamak için kolay bir yol sağlamaz.
Ne yazık ki, burada gösterilen Java programlama dilinde numaralandırılmış türler için en sık kullanılan model, C enum yapısının eksikliklerini paylaşır.
Bu kalıbın int sabitleri yerine String sabitlerinin kullanıldığı bir varyantıyla karşılaşabilirsiniz. Bu varyant asla kullanılmamalıdır. Sabitleri için yazdırılabilir dizeler sağlarken, dize karşılaştırmalarına dayandığından performans sorunlarına yol açabilir.
Ayrıca, saf kullanıcıları uygun alan adlarını kullanmak yerine sabit kod dizesi sabitlerini istemci koduna yönlendirmeye yönlendirebilir. Böyle bir sabit kodlanmış dize sabiti bir yazım hatası içeriyorsa, hata derleme zamanında algılanmadan kaçar ve çalışma zamanında hatalara neden olur.
Neyse ki, Java programlama dili, yaygın int ve String modellerinin tüm eksikliklerini ortadan kaldıran ve birçok ek fayda sağlayan bir alternatif sunar. Typesafe enum deseni olarak adlandırılır. Ne yazık ki, henüz yaygın olarak bilinmiyor.
Temel fikir basittir: Numaralandırılmış türün tek bir öğesini temsil eden bir sınıf tanımlayın ve herhangi bir genel kurucu sağlamayın. Bunun yerine, numaralandırılmış türdeki her sabit için bir tane olmak üzere genel statik son alanlar sağlayın.
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)