SORU
15 ŞUBAT 2011, Salı


Builder Etkili Java Desen

Son zamanlarda Joshua Bloch tarafından Etkili Java okumaya başladım. Üreticisinin fikir [kitap ürün 2] gerçekten ilginç desen buldum. Bunu uygulamak için projemde denedim ama derleme hatası vardı. Aşağıdaki yapmaya çalıştığım şey özünde

Birden çok öznitelik ve üretici sınıf sınıf:

public class NutritionalFacts {
    private int sodium;
    private int fat;
    private int carbo;

    public class Builder {
        private int sodium;
        private int fat;
        private int carbo;

        public Builder(int s) {
            this.sodium = s;
        }

        public Builder fat(int f) {
            this.fat = f;
            return this;
        }

        public Builder carbo(int c) {
            this.carbo = c;
            return this;
        }

        public NutritionalFacts build() {
            return new NutritionalFacts(this);
        }
    }

    private NutritionalFacts(Builder b) {
        this.sodium = b.sodium;
        this.fat = b.fat;
        this.carbo = b.carbo;
    }
}

Yukarıdaki sınıf kullanmaya çalıştığım yerde sınıf

public class Main {
    public static void main(String args[]) {
        NutritionalFacts n = 
            new NutritionalFacts.Builder(10).carbo(23).fat(1).build();
    }
}

Aşağıdaki derleyici hata alıyorum:

kapsayan bir örneğini içerir effectivejava.BuilderPattern.NutritionalFacts.Oluşturucu gereklidir NutritionalFacts n = yeni NutritionalFacts.Builder(10).carbo(23).yağ(1).() kuruyoruz

Mesajın ne anlama geldiğini anlamıyorum. Lütfen açıklayın. Yukarıdaki kod örneği Bloch tarafından önerilen kitabında benzer.

CEVAP
15 ŞUBAT 2011, Salı


Oluşturucu static bir sınıf olun. Daha sonra bu iş olacak. Eğer statik olmayan ise, sahip olduğu sınıfının bir örneğini gerektirir - ve bu nokta bir örnek değil, ve hatta builder olmadan örneklerini yapma korusun.

public class NutritionFacts {
    public static class Builder {
    }
}

Referans: Nested classes

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Epic Tutorials for iPhone, iPad and iOS

    Epic Tutoria

    18 EYLÜL 2011
  • Rachel Talbott

    Rachel Talbo

    26 Ocak 2011
  • Wronchi Animation

    Wronchi Anim

    9 Mayıs 2011