1
我正在开发一个Android Java项目,我有预感,我将能够使用一个更好的模式,以适应两个地方的情况。设计模式 - 不同的对象,返回相同的对象
我有一个类从输入的模型/对象构建ContentValues(基本上是键/值对象),并返回一个ContentValue对象,它具有不同的键/值,具体取决于我输入的对象。
目前,我想为每个对象生成ContentValues的方法。 E.g:
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;
}
所以我的问题是:是否有任何设计模式,我可以使用,使相同的功能更加一般化的方式,所以我可以使用,而不是创建为每个新对象的新方法同样的方法我想用吗?
很好的实现。我有点认为实现应该在相应的类中,但我没有考虑通用接口。谢谢。 我也欢迎替代解决方案。 –
嘿,谢谢,我只是想添加我的接口名称可能有点关闭,可构建是相当建设者和测验和模块,其他类应实现Buildable。如果您有问题,我想我会在稍后更新我的答案:) – ElDuderino