2012-04-18 38 views
0

我想設計一個簡單的用戶偏好對象及其層次結構。它應該像在java中設計一個簡單的用戶首選對象?

preference 
    String Name 
    Object Value 

booleanPreference 
    String Name 
    Boolean Value 

....

它繼續這樣。偏好類型從班級變爲班級。我將如何去實現這樣一個簡單的設計「抽象類/接口/」?

+0

是您要找到一個設計模式或問題你在尋找一個解決方案,並不介意爲此使用一個庫嗎?那麼你可能想看看[commons-configuration](http://commons.apache.org/configuration/)。 – nansen 2012-04-18 19:36:55

回答

5

開始與接口:

public interface Preference<T> { 
    String getName(); 
    T getValue(); 
} 

實現可能是這樣的(約一般不知道,沒有編譯檢查):

public class PreferenceImpl implements Preference<T> { 
    private final String name; 
    private final T value; 

    public PreferenceImpl(String name, T value) { 
     this.name = name; 
     this.value = value; 
    } 

    public String getName() { return this.name; } 
    public T getValue() { return this.value; } 
} 
+0

對象中沒有太多要求是抽象類,所以定義行爲和使用接口似乎是一個更好的主意。我也完全分開了泛型。感謝您的提醒。 – 2012-04-18 20:17:24

+0

但這就是我所做的。這裏沒有抽象類。泛型是關鍵,因爲您不想爲每個想要使用Preference的類創建新的實現。 – duffymo 2012-04-18 20:18:26

+0

我同意你的意見。不意味着以其他方式發聲。我喜歡它的簡單性。 – 2012-04-18 20:32:44