【发布时间】:2019-09-26 11:37:42
【问题描述】:
我喜欢在我的应用中计算多个事物并将值保存到 android sharedpreferences。一切正常,但我对一般的类设计不满意。
非常简单的抽象类。类参数用于命名 sharedPreferences 中的键。
public abstract class Counter {
private Context mContext;
private Class mClass;
Counter(Class myClass, Context context) {
this.mClass = myClass;
this.mContext = context;
}
public Integer getValue() {
return PrefManager.with(mContext).getInt(mClass.getName(), 0);
//return UniversalPreferences.getInstance().get(counterName, 1);
}
public void increment() {
PrefManager.with(mContext).save(mClass.getName(), getValue() + 1);
//UniversalPreferences.getInstance().put(counterName, getCurrentValue(counterName) + 1);
}
}
到目前为止,我已经有 5 个类继承自 Counter 且内容相同。
public class CounterAppLaunch extends Counter {
@SuppressLint("StaticFieldLeak")
private static CounterAppLaunch instance;
private CounterAppLaunch(Context context) {
super(CounterAppLaunch.class, context);
}
public static CounterAppLaunch getInstance(Context context) {
if(CounterAppLaunch.instance == null) {
CounterAppLaunch.instance = new CounterAppLaunch(context);
}
return CounterAppLaunch.instance;
}
}
我喜欢从不同的类调用计数器并在那里递增(例如 CounterAPICall 或 CounterOnResumeCallExample)。与这段代码配合得很好。
【问题讨论】:
标签: java inheritance abstract-class