业务逻辑层是衔接数据持久层(网络层)与表示层的中间一层,他读取数据持久层的数据,经过业务处理,然后传递给表示层用与展示的数据。同样,当表示层操作使数据发生变化时,通过业务逻辑层将变化的数据保存到数据持久层。
因此,必不可少,我们在这里会处理所谓MVC模式里面M的部分。也许不是直接用于VC的Model,但至少是这一Model的基本来源。
【勤之时】的表示层主要有3个DataCenter和一些列的Model构成。
- ILDTaskDataCenter
- ILDDiligenceDataCenter
- ILDStoryDataCenter
- ILDTaskModel
- ILDDiligenceModel
- ILDStoryModel
- ILDStatisticsTodayModel
- ILDStatisticsHistoryModel
ILDTaskDataCenter 和 ILDTaskModel 主要向下面这些页面提供数据服务接口和数据模型。
我们可以想到的功能是这些:1
2
3
4
5
6
7
8
9
10
11
12
13
14//获得所有的TaskId,用于任务一览的展示
- (NSArray *)taskIds;
//根据taskId获取对应的TaskModel,用于Task Configuration的展示/修改等。
- (ILDTaskModel *)taskConfigurationById:(NSString *)taskId;
//添加一个任务,并保存
- (void)addTask:(ILDTaskModel *)taskConfiguration;
//更新一个任务,并保存
- (void)updateTask:(NSString *)taskId taskConfiguration:(ILDTaskModel *)taskConfiguration;
//删除一个任务,并保存
- (void)removeTask:(NSString *)taskId;
ILDDiligenceDataCenter 和 ILDDiligenceModel,ILDStatisticsTodayModel, ILDStatisticsHistoryModel主要向下面这些页面提供数据服务接口和数据模型。
我们可以想到的功能是这些:1
2
3
4
5
6
7
8
9
10
11//当任务计时完成,我们需要添加一条勤记录到数据持久层。
- (void)addDiligence:(ILDDiligenceModel *)diligenceData;
//当某一个任务删除时,需要把该任务对应的所有勤记录从数据持久层中删除。
- (void)removeDiligence:(NSString *)taskId;
//提供今日统计的数据模型。数据是基于数据持久层中的勤数据来统计的。
- (ILDStatisticsTodayModel *)prepareStatisticsToday;
//提供历史数据的数据模型。数据是基于数据持久层中的勤数据来统计的。
- (ILDStatisticsHistoryModel *)prepareStatisticsHistory;
ILDStoryDataCenter 和 ILDStoryModel主要向下面这些页面提供数据服务接口和数据模型。
我们可以想到的功能是这些:1
2//提供今日故事模型
- (ILDStoryModel *)prepareStoryModel;
ILDTaskDataCenter, ILDDiligenceDataCenter, ILDStoryDataCenter读取对应的数据持久层的数据,根据业务逻辑,重新组装数据,提供给表示层使用,并负责对数据持久层的增删改操作。
这三个类都以单例的形式设计,因为在应用程序运行期间他们有且仅需要一份内容。