基于页面上的 JAVA 教程:http: //tutorials.jenkov.com/java-persistence/dao-manager.html,
我试图用 xCode for iOS 实现相同的概念。
目标是提供一个 DAOManager :一个 DAOCommand(定义为协议)+他的 execute 方法的实现。我可以创建一个实现协议的特定接口,但正如上面提到的例子,我想在调用它时实现该方法。如果我是对的,可以使用 BLOCK 在objective-c 中实现这一点。
上述页面上提供的 java 代码示例:
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);
}
});
我尝试通过以下方式实现它: 1/ DAOCommand:
@protocol IDaoCommand
- (id) executeUsingManager:(DAOManager*)pDAOManager;
@end
2/ 我的 PoiCRUDService 接口,带有一个调用 DAOManager 的方法 getListOfPoi :
- (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。关于步骤和方法的任何想法?
感谢您的任何想法或建议。英石。