Java - 首选项的存储结构?

时间:2012-06-21 12:19:40

标签: java data-structures

我需要做的是在对象中存储偏好结构。 是否有通常的模式如何在Java中保存属性,具有以下前提条件:

  • 不同的数据类型可以显示为设置(布尔值,整数,复选框)
  • 不同的DataTypes具有不同数量的值(布尔值有一个,复选框有很多)
  • 不知道会有多少个偏好条目。

            {TYPE;NAME;VALUE} 
            {TYPE;NAME;VALUE} 
            {TYPE;NAME;VALUE}
    

例如:

            {CHECKBOXES;"Radio box choice"; { Red, White, Blue}}
            {BOOLEAN;"Hintergrund"; true}} 
            {INT;"Page number"; 34}} 
            {STRING;"App title";"Jenny"}}

3 个答案:

答案 0 :(得分:2)

创建名为Preference的基本JavaBean(POJO),其属性为 type name values 。为每个首选项类型创建Preference的子类,例如CheckboxPref,BooleanPref等。在这些子类中适当地覆盖行为。例如,CheckBoxPref中的setValue()可能与IntPref中的setValue()具有不同的行为。

然后创建另一个名为PreferenceManager的类。在那里存储一个Preference集合,并公开loadPreferences(File preferenceFile),setPreferenceValue(String name)等方法。

PreferenceManager也可以用作FactoryMethod,根据首选项类型创建正确的Preference子类。

不确定这是否是模式,但我就是这样做的。

答案 1 :(得分:1)

答案 2 :(得分:0)

您可以创建一个表示属性的类。并在对象中使用List。

class Property{

   enum dataType; //create a specific enum
   String name;
   Object value;

}

如果你想更进一步,那么你可以继承这个属性来添加类似于BooleanProperty或StringProperty的somme类型。