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

Yeni Erişimciler  – 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

Yeni Erişimciler  – Blog Yazma – Web Tasarımı Yapımı – Web Tasarımı YouTube Videosu Yapımı – Web Sitesi Tasarlama Fiyatları

Bulucu Yöntemler – Blog Yazma – Web Tasarımı Yapımı – Web Tasarımı YouTube Videosu Yapımı – Web Sitesi Tasarlama Fiyatları

Yeni Erişimciler  

Yeni kurucu ve yeni erişimciler yerindeyken, Period gerçekten değişmezdir. Bir programcı ne kadar kötü niyetli veya beceriksiz olursa olsun, bir dönemin başlangıcının bitişini takip etmediği değişmezini ihlal etmesinin hiçbir yolu yoktur. Bu doğrudur, çünkü Period’un kendisinden başka bir sınıfın bir Period örneğindeki değiştirilebilir alanlardan herhangi birine erişim elde etmesinin bir yolu yoktur. Bu alanlar gerçekten nesne içinde kapsüllenmiştir.

Yeni oluşturucunun aksine yeni erişimcilerin, savunma kopyaları oluşturmak için klon yöntemini kullandıklarına dikkat edin. Bu kabul edilebilir (gerekli olmasa da), Period’un dahili Date nesnelerinin sınıfının, potansiyel olarak güvenilmeyen bazı alt sınıflardan ziyade java.util.Date olduğunu kesin olarak bildiğimiz içindir.

Parametrelerin savunma amaçlı kopyalanması yalnızca değişmez sınıflar için değildir. İstemci tarafından sağlanan bir nesneyi dahili bir veri yapısına giren bir yöntem veya yapıcı yazdığınızda, istemci tarafından sağlanan nesnenin potansiyel olarak değişebilir olup olmadığını düşünün. Eğer öyleyse, sınıfınızın veri yapısına girildikten sonra nesnedeki bir değişikliği tolere edip edemeyeceğini düşünün.

Cevap hayır ise, nesneyi savunma amaçlı olarak kopyalamalı ve kopyayı veri yapısına orijinalin yerine girmelisiniz. Örneğin, istemci tarafından sağlanan bir nesne başvurusunu dahili bir Set örneğinde öğe olarak veya dahili bir Map örneğinde anahtar olarak kullanmayı düşünüyorsanız, nesnenin yerleştirildikten sonra değiştirilmiştir.

Aynısı, dahili bileşenlerin istemcilere iade edilmeden önce savunma amaçlı kopyalanması için de geçerlidir. Sınıfınız değişmez olsun ya da olmasın, değişken olan bir dahili bileşene başvuru göndermeden önce iki kez düşünmelisiniz. Muhtemelen bir savunma kopyasını iade ediyor olmalısınız.

Ayrıca, sıfır uzunlukta olmayan dizilerin her zaman değişken olduğunu hatırlamak çok önemlidir. Bu nedenle, bir istemciye geri göndermeden önce her zaman dahili bir dizinin savunma kopyasını oluşturmalısınız. Alternatif olarak, kullanıcıya dizinin değişmez bir görünümünü döndürebilirsiniz. Bu tekniklerin ikisi de gösterilmiştir.

Muhtemelen, tüm bunlardan gerçek ders, mümkün olduğunda, değişmez nesneleri nesnelerinizin bileşenleri olarak kullanmanız gerektiğidir, böylece savunma amaçlı kopyalama konusunda endişelenmenize gerek kalmaz. Dönem örneğimizde, deneyimli programcıların genellikle Date nesne referansı kullanmak yerine Date.getTime() tarafından döndürülen ilkel uzunu dahili zaman gösterimi olarak kullandıklarına işaret etmeye değer. Bunu öncelikle Date değişken olduğu için yaparlar.

Değişken bir parametrenin bir nesneye entegre edilmeden önce savunma amaçlı bir kopyasını yapmak her zaman uygun değildir. Çağrılması, bir parametre tarafından başvurulan nesnenin açık bir aktarımını gösteren bazı yöntemler ve oluşturucular vardır. İstemci, böyle bir yöntemi çağırırken, nesneyi artık doğrudan değiştirmeyeceğine söz verir. İstemci tarafından sağlanan değiştirilebilir bir nesnenin kontrolünü ele geçirmeyi bekleyen bir yöntem veya kurucu, belgelerinde bunu açıkça belirtmelidir.

Çağrılması bir kontrol transferini gösteren yöntemler veya oluşturucular içeren sınıflar, kendilerini kötü niyetli istemcilere karşı savunamazlar. Bu tür sınıflar, yalnızca sınıf ile müşterisi arasında karşılıklı güven olduğunda veya sınıfın değişmezlerine verilen zararın müşteriden başka kimseye zarar vermeyeceği durumlarda kabul edilebilir.

İkinci duruma bir örnek, sarmalayıcı sınıf modelidir. Sarmalayıcı sınıfın doğasına bağlı olarak, istemci, sarmalandıktan sonra bir nesneye doğrudan erişerek sınıfın değişmezlerini yok edebilir, ancak bu genellikle yalnızca istemciye zarar verir.


Site engelleme programı
Telefonda zararlı siteleri engelleme
chrome-untrusted://
Site engelleme Chrome
URL engelleme
Uygunsuz siteleri engelleme
Block site
chrome’da site engelleme kaldırma


Yöntem İmzalarını Dikkatlice Tasarlayın

Bu öğe, kendi öğelerini pek hak etmeyen bir API tasarım ipuçları çantasıdır. Birlikte ele alındığında, API’nizin daha kolay öğrenilmesine ve kullanılmasına ve hatalara daha az meyilli olmasına yardımcı olurlar.

Yöntem adlarını dikkatlice seçin. Adlar her zaman standart adlandırma kurallarına uymalıdır. Öncelikli hedefiniz, aynı paketteki diğer isimlerle anlaşılır ve tutarlı isimler seçmek olmalıdır.

İkincil hedefiniz, varsa, daha geniş fikir birliğine uygun isimler seçmek olmalıdır. Şüpheye düştüğünüzde, rehberlik için Java kitaplığı API’lerine bakın. Kütüphanelerin boyutu ve kapsamı göz önüne alındığında, kaçınılmaz olarak birçok tutarsızlık olsa da, fikir birliği de vardır. Paha biçilmez bir kaynak, Patrick Chan’ın Java platformu kitaplıklarındaki her bir yöntem için alfabetik olarak dizine alınmış yöntem bildirimlerini içeren The Java Developers Almanac’ıdır.

Örneğin, bir yöntemi sil veya sil olarak adlandırmayı merak ediyorsanız, bu kitabın dizinine hızlı bir bakış, kaldırmanın bariz bir seçim olduğunu söyleyecektir. İsimleri remove ile başlayan yüzlerce, isimleri silme ile başlayan bir avuç metot vardır.

Kolaylık yöntemleri sağlama konusunda aşırıya kaçmayın. Her yöntem “ağırlığını çekmelidir”. Çok fazla yöntem, bir sınıfı öğrenmeyi, kullanmayı, belgelemeyi, test etmeyi ve sürdürmeyi zorlaştırır. Bu, çok fazla yöntemin uygulayıcılar için olduğu kadar kullanıcılar için de hayatı zorlaştırdığı arayüzler için iki kat doğrudur. Türünüz tarafından desteklenen her eylem için tamamen işlevsel bir yöntem sağlayın. Yalnızca sık kullanılacaksa bir işlem için bir “stenografi” sağlamayı düşünün. Şüphe duyduğunuzda, bırakın.

Uzun parametre listelerinden kaçının. Kural olarak, üç parametre pratik bir maksimum olarak görülmelidir ve daha azı daha iyidir. Çoğu programcı daha uzun parametre listelerini hatırlayamaz. Yöntemlerinizin çoğu bu sınırı aşarsa, API’niz belgelerine sürekli başvurulmadan kullanılamaz.

Aynı tipte parametrelerin uzun dizileri özellikle zararlıdır. API’nizin kullanıcıları yalnızca parametrelerin sırasını hatırlayamamakla kalmaz, aynı zamanda parametreleri yanlışlıkla değiştirdiklerinde programları derlenmeye ve çalışmaya devam eder. Sadece yazarlarının amaçladıklarını yapmayacaklar.

Aşırı uzun parametre listelerini kısaltmak için iki teknik vardır. Biri, yöntemi, her biri parametrelerin yalnızca bir alt kümesini gerektiren birden çok yönteme bölmektir. Dikkatsizce yapılırsa, bu çok fazla yönteme yol açabilir, ancak ortogonalliği artırarak yöntem sayısını azaltmaya da yardımcı olabilir. Örneğin, java.util.List arabirimini düşünün.

Her ikisi de üç parametre gerektiren bir alt listedeki bir öğenin ilk veya son dizinini bulmak için yöntemler sağlamaz. Bunun yerine, iki parametre alan ve bir alt listenin görünümünü döndüren alt Liste yöntemini sağlar.

Bu yöntem, istenen işlevselliği sağlamak için her biri tek bir parametreye sahip olan indexOf veya lastIndexOf yöntemleriyle birleştirilebilir. Ayrıca, alt Liste yöntemi, alt listeler üzerinde rastgele hesaplamalar gerçekleştirmek için bir Liste örneğinde çalışan diğer herhangi bir yöntemle birleştirilebilir. Ortaya çıkan API, çok yüksek bir güç-ağırlık oranına sahiptir.

Aşırı uzun parametre listelerini kısaltmak için ikinci bir teknik, parametre kümelerini tutmak için yardımcı sınıflar oluşturmaktır. Tipik olarak bu yardımcı sınıflar statik üye sınıflarıdır. Bu teknik, sık sık meydana gelen bir parametre dizisinin bazı farklı varlıkları temsil ettiği görülüyorsa önerilir.

Örneğin, bir kart oyununu temsil eden bir sınıf yazdığınızı ve kendinizi sürekli olarak bir kartın derecesini ve rengini temsil eden iki parametre dizisini geçerken bulduğunuzu varsayalım. Bir kartı temsil edecek bir yardımcı sınıf eklediyseniz ve parametre dizisinin her oluşumunu yardımcı sınıfın tek bir parametresiyle değiştirirseniz, API’niz ve sınıfınızın dahili öğeleri muhtemelen iyileştirilir.

Parametre türleri için arayüzleri sınıflara tercih edin. Bir parametreyi tanımlamak için uygun bir arabirim bulunduğunda, bunu arabirimi uygulayan bir sınıf lehine kullanın. Örneğin, bunun yerine Map use girdisinde Hashtable’ı alan bir yöntem yazmak için hiçbir neden yoktur.

Bu, bir Hashtable, bir HashMap, bir TreeMap, bir TreeMap’in alt haritasını veya henüz yazılmamış herhangi bir Harita uygulamasını geçmenize izin verir. Bir arabirim yerine bir sınıf kullanarak, istemcinizi belirli bir uygulamayla kısıtlar ve girdi verileri başka bir biçimde mevcutsa, gereksiz ve potansiyel olarak pahalı bir kopyalama işlemini zorlarsınız.


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 cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

× Bize Whatsapp'tan Ulaşın