2013-03-12 28 views
5

beni Çocuk sınıfajenerik fabrika yöntemi kongre

class Child extends Parent<XXX> { 

    public static Child newInstance1(final XXX value) { 
     // ... 
    } 

    public static Parent<XXX> newInstance2(final XXX value) { 
     // ... 
    } 
} 

tercih biridir aşağıdaki içinde

abstract class Parent<V> { 

    protected static <T extends Parent<V>, V> T newInstance(
     final Class<T> type, final V value) { 
     // ... 
    } 
} 

benziyor soyut sınıf var diyelim? newInstance1 veya newInstancw2?

+0

E ne başvuruyor? bazı somut mevcut sınıf mı yoksa jenerik tip mi? –

+0

Sevgili @EyalSchneider Kaynağı güncelledim. afedersiniz. –

cevap

4

Gerçekte, newInstance()'u kullandığınız senaryoya bağlıdır. En genel durumda: Child yana

beni

protected static Child newInstance() 
{ 
    // ... 
} 

daha uygun olur göre, newInstance() uyguluyor.

1

Genellikle bazı sınıf bu özel sınıfın örneğini döndürür içindeki fabrika yöntemi tanımlanır, bu nedenle olmalıdır:

public class Foo ... 
{ 
    public static Foo newInstance() 
    { 
     ... 
    } 
} 

bakılmaksızın bu sınıf uzanır hangi sınıf ve neyi arayüzler o uygular.

İlgili konular