SORU
21 NİSAN 2011, PERŞEMBE


Soyut Fabrika Deseni ve Fabrika Yöntemi arasındaki farklar

Bu iki modelin arasındaki farklar hakkında orada birçok mesaj var biliyorum ama bulamıyorum bir kaç şey vardır.

Okuyorum, factory method deseni jenerik bir ürün görecekler tek somut bir ürün oluşturmak ama istemciden uygulama gizleme nasıl tanımlamak görüyorum. İlk sorum soyut fabrika ile ilgili. Sadece tek somut bir nesne yerine somut nesneler aileler oluşturmak için izin vermek için kendi rolü (kullandığınız ne bağlı olabilir). Soyut fabrika sadece çok büyük bir nesne ya da çok sayıda nesne dediğine göre döner?

Son 2 soruma çeşitli yerlerde gördüğüm anlayamıyorum tam olarak tek bir cümle vardır:

**>İkisi arasındaki tek fark bu

Soyut Fabrika deseni ile, sorumluluğu sınıf temsilciler başka bir nesneye örnekleme nesne Fabrika ise kompozisyon) Yöntem desen kullanır veraset ve bu işlemek için bir alt kullanır istenen nesne örnekleme.**

Benim anladığım factory method deseni ConcreteCreator oluşturmak için bilerek sorumlu hale getirecek Yaratıcı bir arayüze sahiptir. Kalıtım nesne örnekleme işlemek için kullanarak ne demek bu?

Şimdi bu Alıntı ile ilgili, tam olarak nasıl Soyut Fabrika deseni kompozisyonu ile başka bir nesne için nesne örnekleme sorumluluğu temsilci mı? Bu ne anlama geliyor? Soyut Fabrika deseni de miras inşaat süreci gözlerim de yapmak için kullanıyor gibi görünüyor, ama sonra yine bu kalıplar hakkında öğreniyorum.

(Özellikle benim son soru ile herhangi bir yardım büyük mutluluk duyacağız. Teşekkür ederim!

CEVAP
21 NİSAN 2011, PERŞEMBE


İkisi Arasındaki Fark

Bir arasındaki temel fark, "fabrika yöntemini" ve "soyut fabrika yöntemi tek bir yöntem ve bir soyut fabrika nesnesi" dir. fabrika Bir sürü insan bu iki dönem karıştı ve onları birbirinin yerine kullanmaya başla bence. Sabit bir zaman tam olarak fark onları öğrendim ne olduğunu bulmak hatırlıyorum.

Fabrika yöntemi sadece bir yöntem olduğu için, bir alt sınıf, alıntı ikinci yarısı dolayısıyla geçersiz olabilir

... Factory Method deseni kullanır ve bir alt dayanır miras istenen nesneyi işlemek için örnekleme.

Alıntı bir nesne arıyor varsayarkendifabrika yöntemi burada. Değeri bir alt sınıfı olur dönüş değiştirebilecek tek şey verir.

Soyut fabrika birden fazla fabrika yöntemleri olan bir nesne. Alıntı ilk yarısı bakarak:

Soyut Fabrika deseni ile, bir sınıf delege nesnesi sorumluluğu başka bir örnekleme ile nesne beste

Ne dediklerini Foo bir nesne yapmak isteyen bir nesne Bir, olmasıdır. Foo nesnesi yapmak yerine (fabrika bir yöntem ile örneğin), bir gidiyorfarklıFoo oluşturmak için nesne (soyut fabrika) nesne.

Kod Örnekleri

Size farkı göstermek için, burada fabrika bir yöntemdir

class A {
    public void doSomething() {
        Foo f = makeFoo();
        f.whatever();   
    }

    protected Foo makeFoo() {
        return new RegularFoo();
    }
}

class B extends A {
    protected Foo makeFoo() {
        //subclass is overriding the factory method 
        //to return something different
        return new SuperFoo();
    }
}

Ve burada soyut bir fabrika

class A {
    private Factory factory;

    public A(Factory factory) {
        this.factory = factory;
    }

    public void doSomething() {
        //The concrete class of "f" depends on the concrete class
        //of the factory passed into the constructor. If you provide a
        //different factory, you get a different Foo object.
        Foo f = factory.makeFoo();
        f.whatever();
    }
}

interface Factory {
    Foo makeFoo();
    Bar makeBar();
    Aycufcn makeAmbiguousYetCommonlyUsedFakeClassName();
}

//need to make concrete factories that implement the "Factory" interface here

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • backyardjay

    backyardjay

    8 ŞUBAT 2009
  • Dive In

    Dive In

    17 Temmuz 2013
  • Metheud

    Metheud

    9 EYLÜL 2006