基於該教程JAVA頁面上的一個DAO層:http://tutorials.jenkov.com/java-persistence/dao-manager.html,實現了DAO經理和塊
我想實現在Xcode的iOS相同的概念。
目標是提供DAOManager:DAOCommand(定義爲協議)+他的執行方法的實現。我可以創建一個實現該協議的特定接口,但正如上面提到的示例,我想在調用它時實現該方法。如果我是對的,可以使用BLOCK在objective-c中實現。
的代碼public interface DaoCommand {
public Object execute(DaoManager daoManager);
}
樣品請求CRUD服務:
DaoManager daoManager = daoFactory.createDaoManager();
Person person = (Person)
daoManager.executeAndClose(new DaoCommand(){
public Object execute(DaoManager manager){
return manager.getPersonDao().readPerson(666);
}
});
我試圖實現它以下面的方式:提供所提到的頁上的Java代碼
例 1/DAOCommand:
@protocol IDaoCommand
- (id) executeUsingManager:(DAOManager*)pDAOManager;
@end
2/My PoiCRUDService接口與方法getListOfPoi調用DAOManager:
- (id) getListOfPoi {
DAOFactory* daoFactory = [[DAOFactory alloc] initWithOfflineMode:YES];
DAOManager* daoManager = [daoFactory createManager];
[daoManager executeAndCloseDaoCmdBlock:^(id<POIDAO> pPoiDAO) {
[pPoiDAO getListPoi];
}];
}
3 /我DAOManager與方法executeAndClose:
- (id) executeAndCloseDaoCmdBlock:(id(^)(id<IDaoCommand>))pDaoCmdBlock {
// Execute the query
//id returnObject = [[self getPoiDAO] getListPoi];
id returnObject = pDaoCmdBlock(self);
// Close the connection
[self.dataSource closeConnection];
return returnObject;
}
當我看到我的代碼,我沒有看到DAOEntity(POIDAO)的創建。實際上,我很難看到如何將示例Java代碼轉換爲xCode。任何想法的步驟和方法?
感謝您的任何想法或建議。 St.
謝謝你的幫助newacct,我會嘗試一下你給我的代碼樣本。但是在關閉這個主題之前的最後一個問題,我要實現daoManager的executeAndClose方法。假設這個實現必須:1 - 打開一個連接,2 - 執行塊的代碼,3 - 關閉在步驟1打開的連接。它是:(id)executeAndClose:(DaoCommand)pDao {/ * 1-打開連接; */.../* 2 - 執行區塊*/pDao(self);/* 3-Close Connection */...},語法是:pDao(self)是執行將daoManager本身作爲參數傳遞的塊的正確方法 – xiaolong97427