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

  • bigky226

    bigky226

    11 HAZİRAN 2006
  • incognitotraveler

    incognitotra

    27 Mayıs 2010
  • UCBerkeley

    UCBerkeley

    3 Mayıs 2006