【发布时间】:2014-03-25 02:00:55
【问题描述】:
我正在开发一个 Android Java 项目,我有预感我将能够使用更好的模式来应对在两个地方发生的情况。
我有一个类,它从输入的模型/对象构建 ContentValues(基本上是键/值对象)并返回一个 ContentValue 对象,该对象具有不同的键/值,具体取决于我输入的对象。
目前,我要为其生成 ContentValues 的每个对象都有一个方法。 例如:
public ContentValues BuildPage (Page p){
ContentValues val = new ContentValues();
val.put(PAGE_DESCRIPTION, p.getDesciption());
val.put(PAGE_DISPLAYABLE, BitmapHelper.ConvertToBlob(p.getPic()));
val.put(PAGE_MODULE_ID, p.getModuleId());
val.put(PAGE_TITLE, p.getTitle());
return val;
}
public ContentValues BuildQuestion(Question q){
ContentValues val = new ContentValues();
val.put(QUESTION_CORRECT, q.getCorrect());
val.put(QUESTION_QUESTION, q.getQuestion());
val.put(QUESTION_QUIZ_ID, q.getQuizId());
return val;
}
我的直觉告诉我,可能有更好的方法。
第二种情况几乎相反。我输入相同的对象,构建不同的对象并返回它们。 例如:
public Quiz BuildQuizObj(Cursor c){
//{QUIZ_ID, QUIZ_MODULE_ID};
Quiz q = new Quiz();
if(CursorIsOk(c)){
c.moveToFirst();
q.setId(c.getLong(0));
q.setModuleId(c.getLong(1));
}
return q;
}
public Module BuildModuleObj(Cursor c){
List<Module> modules = BuildModulesObj(c);
Module m = new Module();
if(modules.size() > 0){
m = modules.get(0);
}
return m;
}
所以我的问题是:是否有任何设计模式可以让我以更通用的方式实现相同的功能,这样我就可以使用相同的方法而不是为我想使用的每个新对象创建新方法?
【问题讨论】:
标签: java android design-patterns