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