Java Koleksiyonları – Blog Yazma – Web Tasarımı Yapımı – Web Tasarımı YouTube Videosu Yapımı – Web Sitesi Tasarlama Fiyatları
Java Koleksiyonları
Statik fabrika yöntemlerinin üçüncü bir avantajı, yapıcıların aksine, dönüş türlerinin herhangi bir alt türünden bir nesne döndürebilmeleridir. Bu, döndürülen nesnenin sınıfını seçme konusunda size büyük esneklik sağlar.
Bu esnekliğin bir uygulaması, bir API’nin sınıflarını herkese açık hale getirmeden nesneleri döndürebilmesidir. Uygulama sınıflarını bu şekilde gizlemek çok kompakt bir API’ye yol açabilir. Bu teknik, arabirimlerin statik fabrika yöntemleri için doğal dönüş türleri sağladığı arabirim tabanlı çerçevelere uygundur.
Örneğin, Koleksiyonlar Çerçevesi, değiştirilemez koleksiyonlar, senkronize koleksiyonlar ve benzerlerini sağlayan koleksiyon arayüzlerinin yirmi kolaylık uygulamasına sahiptir. Bu uygulamaların büyük çoğunluğu statik fabrika yöntemleri aracılığıyla tek, değişmez olmayan bir sınıfta (java.util.Collections) dışa aktarılır. Döndürülen nesnelerin sınıflarının tümü genel değildir.
Collections Framework API, kolaylık uygulamaları için yirmi ayrı ortak sınıfı dışa aktarmış olsaydı olacağından çok daha küçüktür. Azalan yalnızca API’nin büyük kısmı değil, aynı zamanda “kavramsal ağırlık”tır.
Kullanıcı, döndürülen nesnenin tam olarak ilgili arabirim tarafından belirtilen API’ye sahip olduğunu bilir, bu nedenle ek sınıf belgelerini okumaya gerek yoktur. Ayrıca, böyle bir statik fabrika yönteminin kullanılması, istemcinin döndürülen nesneye, genellikle iyi bir uygulama olan uygulama sınıfı yerine arabirimi aracılığıyla başvurmasını zorunlu kılar.
Bir genel statik fabrika yöntemi tarafından döndürülen bir nesnenin sınıfı yalnızca genel olmamakla kalmaz, aynı zamanda sınıf, statik fabrikaya ilişkin parametrelerin değerlerine bağlı olarak çağrıdan çağrıya değişebilir. Bildirilen dönüş türünün alt türü olan herhangi bir sınıfa izin verilir. Döndürülen nesnenin sınıfı, gelişmiş yazılım bakımı için sürümden sürüme de değişebilir.
Statik fabrika yöntemi tarafından döndürülen nesnenin sınıfının, statik fabrika yöntemini içeren sınıfın yazıldığı sırada var olmasına bile gerek yoktur. Bu tür esnek statik fabrika yöntemleri, Java Şifreleme Uzantısı (JCE) gibi hizmet sağlayıcı çerçevelerinin temelini oluşturur.
Hizmet sağlayıcı çerçevesi, sağlayıcıların bir API’nin birden çok uygulamasını çerçevenin kullanıcılarına sunduğu bir sistemdir. Bu uygulamaları kayıt altına almak ve kullanıma hazır hale getirmek için bir mekanizma sağlanmıştır. Çerçevenin istemcileri, hangi uygulamayı kullandıkları konusunda endişelenmeden API’yi kullanır.
Java Collections Nedir
Java Collections örnekleri
Java Collections import
Collection Framework Nedir
Java collections framework
Java Map
Java List
Java Map kullanımı
JCE’de sistem yöneticisi, iyi bilinen bir Özellikler dosyasını düzenleyerek ve ilgili sınıf adına bir dize anahtarı eşleyen bir giriş ekleyerek bir uygulama sınıfını kaydeder. İstemciler, anahtarı parametre olarak alan statik bir fabrika yöntemi kullanır. Statik fabrika yöntemi, Properties dosyasından başlatılan bir haritada Class nesnesini arar ve Class.newInstance yöntemini kullanarak sınıfı başlatır.
Statik fabrika yöntemlerinin ana dezavantajı, genel veya korumalı kurucuları olmayan sınıfların alt sınıflanamamasıdır. Aynısı, genel statik fabrikalar tarafından döndürülen genel olmayan sınıflar için de geçerlidir. Örneğin, Collections Framework içindeki uygunluk uygulama sınıflarından herhangi birini alt sınıflara ayırmak mümkün değildir. Programcıları kalıtım yerine kompozisyon kullanmaya teşvik ettiği için bu muhtemelen kılık değiştirmiş bir nimet olabilir.
Statik fabrika yöntemlerinin ikinci bir dezavantajı, diğer statik yöntemlerden kolaylıkla ayırt edilememeleridir. API belgelerinde yapıcıların yaptığı gibi öne çıkmazlar. Ayrıca, statik fabrika yöntemleri, normdan bir sapmayı temsil eder.
Bu nedenle, yapıcılar yerine statik fabrika yöntemleri sağlayan bir sınıfın nasıl başlatılacağını sınıf belgelerinden anlamak zor olabilir. Bu dezavantaj, standart adlandırma kurallarına bağlı kalarak azaltılabilir.
Bu kurallar hala gelişmektedir, ancak statik fabrika yöntemleri için iki isim yaygınlaşmaktadır:
• valueOf— Genel anlamda, parametreleriyle aynı değere sahip bir örneği döndürür. Bu ada sahip statik fabrika yöntemleri, etkin bir şekilde tür dönüştürme operatörleridir.
• getInstance— Parametreleri tarafından tanımlanan ancak aynı değere sahip olduğu söylenemeyen bir örneği döndürür. Singleton durumunda, tek örneği döndürür. Bu ad, sağlayıcı çerçevelerinde yaygındır.
Özetle, statik fabrika yöntemlerinin ve kamu kurucularının her ikisinin de kullanımları vardır ve bunların göreceli değerlerini anlamak faydalıdır. Statik fabrikalar genellikle daha uygun olduğundan, önce statik fabrikaları düşünmeden kuruculara sağlama refleksinden kaçının. İki seçeneği tarttıysanız ve hiçbir şey sizi her iki yönde de güçlü bir şekilde zorlamıyorsa, muhtemelen bir kurucu sağlamak en iyisidir çünkü bu sadece normdur.
Özellikleri Uygulama
Bir singleton, tam olarak bir kez somutlaştırılan bir sınıftır. Tek tonlar tipik olarak, video gösterimi veya dosya sistemi gibi, özünde benzersiz olan bazı sistem bileşenlerini temsil eder.
Singletonları uygulamak için iki yaklaşım vardır. Her ikisi de yapıcıyı özel tutmaya ve istemcilerin sınıfın tek örneğine erişmesine izin vermek için genel bir statik üye sağlamaya dayanır.
Özel kurucu, genel statik son alanı Elvis.INSTANCE başlatmak için yalnızca bir kez çağrılır. Kamuya açık veya korumalı kurucuların olmaması, “monoelvistik” bir evreni garanti eder: Elvis sınıfı başlatıldığında tam olarak bir Elvis örneği var olacaktır. Bir müşterinin yaptığı hiçbir şey bunu değiştiremez.
İlk yaklaşımın temel avantajı, sınıfı oluşturan üyelerin bildirimlerinin, sınıfın tek bir olduğunu açıkça ortaya koymasıdır: genel statik alan nihaidir, bu nedenle alan her zaman aynı nesne referansını içerecektir. İlk yaklaşıma göre hafif bir performans avantajı da olabilir, ancak iyi bir JVM uygulaması, çağrıyı ikinci yaklaşımda statik fabrika yöntemine sıralayarak ortadan kaldırabilmelidir.
İkinci yaklaşımın ana avantajı, API’yi değiştirmeden sınıfın bir tek ton olup olmayacağı konusundaki fikrinizi değiştirme esnekliği sağlamasıdır. Bir singleton için statik fabrika yöntemi, sınıfın tek örneğini döndürür, ancak yöntemi çağıran her bir iş parçacığı için benzersiz bir örnek döndürmek üzere kolayca değiştirilebilir.
Dengede, o zaman, sınıfın sonsuza kadar tek bir ton olarak kalacağından kesinlikle eminseniz, ilk yaklaşımı kullanmak mantıklıdır. Konuyla ilgili yargıda bulunmak istiyorsanız ikinci yaklaşımı kullanın.
Bir singleton sınıfını serileştirilebilir hale getirmek için, bildirimine yalnızca Serileştirilebilir araçları eklemek yeterli değildir.
Singleton garantisini sürdürmek için ayrıca bir readResolve yöntemi sağlamalısınız. Aksi takdirde, seri hale getirilmiş bir örneğin her seri durumdan çıkarılması, yeni bir örneğin oluşturulmasına neden olacak ve örneğimizde sahte Elvis manzaralarına yol açacaktır. Bunu önlemek için Elvis sınıfına aşağıdaki readResolve yöntemini ekleyin.
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)