Evet, sınıf adlarından açıkça ayırt edildikleri sürece, tür değişkenleri için çok karakterli adlar kullanabilirsiniz.
Bu, 2004 yılında jenerik ilaçların piyasaya sürülmesiyle Sun tarafından önerilen sözleşmeden farklıdır. Ancak:
- Birden fazla kongre var.
- Çok karakterli adlar, Google'ın Java stili gibi diğer Java stilleriyle tutarlıdır .
- Okunabilir isimler (sürpriz!) Daha okunabilir.
Okunabilirlik
Yazdığım bazı arayüzlerde, kodu daha okunaklı hale getirmek için genel tür parametresini birden fazla karakterle adlandırmak istiyorum.
Okunabilirlik iyidir.
Karşılaştırmak:
public final class EventProducer<L extends IEventListener<E>,E>
implements IEventProducer<L,E> {
için:
public final class EventProducer<LISTENER extends IEventListener<EVENT>,EVENT>
implements IEventProducer<LISTENER, EVENT> {
veya Google'ın çok karakterli kuralına göre:
public final class EventProducer<ListenerT extends IEventListener<EventT>,EventT>
implements IEventProducer<ListenerT, EventT> {
public final class EventProducer<ListenerT extends IEventListener<EventT>,EventT>
implements IEventProducer<ListenerT, EventT> {
Google stili
Google Java Stil Kılavuzu verir tek harfli isimler ve çoklu karakter sınıfı benzeri T. ile biten isimlerin hem
5.2.8 Değişken adlarını yazın
Her tür değişkeni iki stilden birinde adlandırılır:
İsteğe bağlı olarak tek bir sayı ile ve ardından tek bir harf, (örneğin E
, T
, X
, T2
)
Sınıflar için kullanılan formda bir isim (Bölüm 5.2.2, bkz Sınıf isimleri ), büyük harfle T (: örnekler takiben RequestT
, FooBarT
).
Sorunlar
"Bu kural olmadan, bir tür değişkeni ile sıradan bir sınıf veya arabirim adı arasındaki farkı söylemek zor olurdu." - Oracle eğiticilerinden, "Genel türler"
Yukarıda gördüğümüz gibi, tip parametrelerini sınıf isimlerinden ayırmanın tek yolu tek karakterli isimler değildir.
Neden JavaDoc'ta tür parametresinin anlamını belgelemiyorsunuz?
@param
JavaDoc öğelerinin daha uzun bir açıklama sağlayabileceği doğrudur . Ancak JavaDoc'ların mutlaka görünür olmadığı da doğrudur. (Örneğin, Eclipse'de tür parametresi adlarını gösteren bir içerik yardımcısı vardır.)
Çok karakterli tür parametre adları Oracle kuralına uymaz!
Sun'ın orijinal kurallarının çoğu Java programlamasında neredeyse evrensel olarak takip edilmektedir.
Ancak bu özel kongre değildir.
Rakip konvansiyonlar arasında en iyi seçim bir fikir meselesidir. Bu durumda Oracle'ın dışında bir kongre seçmenin sonuçları önemsizdir. Siz ve ekibiniz ihtiyaçlarınızı en iyi karşılayan bir kongre seçebilirsiniz.