0

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

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

            {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"}}
4

3 回答 3

2

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

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

PreferenceManager 也可以用作 FactoryMethod 来根据 Preference Type 创建正确的 Preference 子类。

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

于 2012-06-21T12:51:19.190 回答
1

您可能想要使用 Java Preferences API:

http://docs.oracle.com/javase/7/docs/api/java/util/prefs/Preferences.html

于 2012-06-21T12:25:22.007 回答
0

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

class Property{

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

}

如果你想更进一步,那么你可以从这个属性继承来添加一些类型的专门类,比如 BooleanProperty 或 StringProperty。

于 2012-06-21T12:29:25.283 回答