SORU
21 EKİM 2008, Salı


Yönetme Java birçok parametrelerle kurucular

Bizim bazı projelerinde, zincir gider olarak daha fazla parametre ekler sınıf bir hiyerarşi var. Alt sınıfların bazıları da sadece Süper kurucu geçirilen 30 parametreleri, 28.

Guice gibi bir şey ile otomatik Dİ kullanarak güzel olacağını kabul ediyorum, ama bazı teknik nedenlerden dolayı, bu özel projeler Java ile sınırlı.

Bir kongre organize değişkenleri alfabetik olarak yazın çalışmıyor çünkü eğer bir türüdür refactored (Çember olduğunu geçirilmesi için bağımsız değişken 2 Şimdi bir Şekli) olabilir aniden olması için.

Bu soru "Eğer sorun buysa, tasarım düzeyi" eleştiriler, ama herhangi bir görüş arıyorum. yanlış yapıyorsun özel ve dolu olabilir

CEVAP
21 EKİM 2008, Salı


Builder Tasarım Deseni yardımcı olabilir. Aşağıdaki örneği ele alalım

public class StudentBuilder
{
    private String _name;
    private int _age = 14;      // this has a default
    private String _motto = ""; // most students don't have one

    public StudentBuilder() { }

    public Student buildStudent()
    {
        return new Student(_name, _age, _motto);
    }

    public StudentBuilder name(String _name)
    {
        this._name = _name;
        return this;
    }

    public StudentBuilder age(int _age)
    {
        this._age = _age;
        return this;
    }

    public StudentBuilder motto(String _motto)
    {
        this._motto = _motto;
        return this;
    }
}

Bu bize kod yazmak sağlar

Student s1 = new StudentBuilder().name("Eli").buildStudent();
Student s2 = new StudentBuilder()
                 .name("Spicoli")
                 .age(16)
                 .motto("Aloha, Mr Hand")
                 .buildStudent();

Eğer gerekli bir alan (muhtemelen adı gereklidir) sonra gidersek Öğrenci yapıcı bir istisna yapabiliriz. Ve bize bu telefon, herhangi bir emir eşit derecede iyi çalışır beri bağımsız değişken herhangi bir kaydını tutmak gerek kalmadan varsayılan/isteğe bağlı bağımsız değişkenleri sağlar.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • fufko

    fufko

    27 ŞUBAT 2006
  • Microsoft Research

    Microsoft Re

    24 EKİM 2008
  • thelonelyisland

    thelonelyisl

    23 Aralık 2005