【发布时间】:2013-09-06 15:59:54
【问题描述】:
我已经编写了一个 DataAdapter 库,它与核心数据库具有依赖关系(紧密耦合)(核心数据库有助于在数据库中存储、管理数据),因此我在 DataAdapter 类中创建 API,扩展核心数据类以具有快速访问所有核心数据类的API。
但是,由于我在 DataAdapter 类中扩展了核心数据类,因此核心数据类中的所有 API 都可以通过 DataAdapter 类对开发人员可见(我不希望发生这种情况,基本上希望他使用适配器 API仅限方法。)
例如:核心数据有一个 API
- (CoreDataResponse *) getAllManagedObjectsOfEntity:(CoreDataRequest *)request;
DataAdapter 有一个 API 为 `
-(DBResponse *)getAllStoredRecordsFromDB;
确切的问题是,适配器方法的 Xcode 自动建议显示核心数据 API 以及以下 - 但我希望我的开发人员使用数据适配器仅访问 DataAdapter 的 API 方法,我该如何实现?
更新 -1:这是我使用 coredata 扩展的适配器头类
#import "CoreDataManager.h"
@interface DataAdapter : CoreDataManager
-(DBResponse *)getAllStoredRecordsFromDB;
@end
【问题讨论】:
-
在 DataAdapter 库的实现文件中编写 CoreData 库的导入语句。在实现文件中创建与 CoreData 相关的所有属性,暗示它们是私有的。
-
由于我在 DataAdapter 类中扩展了 CoreData 库,这些 CoreData API 方法仍然可以通过我的 DataAdapter 类实例访问。
-
另外,当我从核心数据扩展适配器时,这个导入语句必须包含在 adapter.h 类文件中。
-
您可以在您的实现文件中从Core Data 中移动与适配器相关的属性。请参阅我在答案中向您展示的如何在实现文件中创建属性。
标签: ios api design-patterns