SORU
7 Ocak 2009, ÇARŞAMBA


Yöntemleri statik almak için iyi bir senaryo nedir?

Sadece yöntemi statik almak iyi bir fikir değildi bu eleştiri bir yorum. Statik alma çoğunlukla statik yöntemler olan DA bir sınıf bir yöntem oldu. İş mantığı orta görünüşe göre geçerli sınıfına ait gibiydi o da bir aktivite vardı:

import static some.package.DA.*;
class BusinessObject {
  void someMethod() {
    ....
    save(this);
  }
} 

Gözden kodunu değiştirdim ve ben tanımıyorum istekli değildi ama ona katılıyorum. Tek bir sebep için değil statik-alma vardı kafa karıştırıcı nereye yöntem tanımlı değildi mevcut sınıf ve herhangi bir sınıf bu yüzden de bir süre için belirlemek tanımı (web tabanlı inceleme sistemi henüz tıklanabilir bağlantılar gibi IDE :-) ben sanmıyorum bu konuları, statik-ithalat hala oldukça yeni ve çok yakında tüm alış bulma.

Ama diğer nedeni, katılıyorum, niteliksiz yöntem çağrısı geçerli nesneye ait gibi görünüyor ve kapsamları atlamak gerekir. Ama eğer gerçekten ait olsaydı, sense süper sınıf genişletmek için yapar.

Bu yüzden, ne zamanyokstatik alma yöntemleri için bunu mantıklı? Ne zaman yaptın bunu? /Vasıfsız aramalar görünüşünü Beğendin mi?

EDİT: popüler görüş ise kimse mevcut sınıf yöntemleri olarak karıştırmaz ise statik alma yöntemleri gibi görünüyor. Örneğin java yöntemleri.lang.Matematik ve java.awt.Renk. Ama eğer abs ve getAlpha değil belirsiz ise readEmployee neden göremiyorum. Programlama seçenekleri çok şey gibi, bu da kişisel tercih bir şey olduğunu düşünüyorum.

Yanıt çocuklar için teşekkürler, soruyu kapatıyorum.

CEVAP
7 Ocak 2009, ÇARŞAMBA


Bu özelliği (özgün vurgu) bıraktıklarında Sun kılavuzu:

Statik ithalat kullanmalıyım?Çok tutumlu!Aksi halde sabitler yerel kopyalarını bildirmek için cazip olacağını zaman kullanmak, ya da miras kötüye (Sabit Arabirim Antipattern). ... Statik alma özelliği aşırı, programınızı okunmaz ve unmaintainable yapabilir, tüm statik üyeleri ile kendi ad kirletici alma. Kod (birkaç ay yazdıktan sonra sen de dahil) okuyucular statik bir üye gelir. Bir sınıf statik üyeleri tüm ithal okunabilirlik için özellikle zararlı olabilir; eğer sadece bir-iki kişi gerekiyorsa, bunları tek tek alın.

(http://java.sun.com/j2se/1.5.0/docs/guide/language/static-import.html)

Özellikle buradan seslenmek istiyorum iki bölümü vardır:

  • Statik ithalat kullanınsadececazip yaşındayken "istismar miras". Bu durumda, extend some.package.DA BusinessObject cazip olurdu? Eğer öyleyse, statik ithalat bu kullanım için daha temiz bir yol olabilir. Eğer hiç some.package.DA, sonra uzanan hayal olurdu bu muhtemelen statik ithalat kötü kullanmak. Sadece yazarken birkaç karakter kurtarmak için kullanmayın.
  • Bireysel üyeler alma.DA.* yerine import static some.package.DA.save söylüyorlar. Bu çok daha kolay alınan bu yöntemi nereden geldiğini bulmak için yapacaktır.

Şahsen, bu dil özelliği kullandımçoknadiren, ve hemen hemen her zaman sadece yöntemleri ile sabitler veya çeteleler ile, asla. Benim için anlaşma, hemen hemen hiç buna değer.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Jack Vale Films

    Jack Vale Fi

    8 ŞUBAT 2007
  • TheRightTire

    TheRightTire

    14 EKİM 2009
  • Truc Minh

    Truc Minh

    23 Ocak 2011