2014-03-31 39 views
0

定義通用工廠的經驗法則是什麼?實施和使用有什麼不同?通用工廠定義選項

選項1:

public interface ScheduleFactory<V, T extends Period<V>> { 
    Schedule<V,T> fromConfigurationString(String configurationString); 
} 

選項2:

public interface ScheduleFactory { 
    <V, T extends Period<V>> Schedule<V,T> fromConfigurationString(String configurationString); 
} 

回答

1

在第一種方式,爲您打造一個ScheduleFactory與特定VT,此後該工廠對象只能返回Schedule<V, T>

在第二種方式中,你創建一個ScheduleFactory對象,然後是一個工廠對象可以創建Schedule<V, T>針對不同V S和T s各自通話。

0

的主要區別是類型推斷

泛型方法:它可以幫助Java編譯器來看看泛型方法調用來確定哪個類型的參數使得調用適用。

泛型類:類型的約束影響到整個類/接口以及您聲明的每種方法。