勤之时 - 业务逻辑层

业务逻辑层是衔接数据持久层(网络层)与表示层的中间一层,他读取数据持久层的数据,经过业务处理,然后传递给表示层用与展示的数据。同样,当表示层操作使数据发生变化时,通过业务逻辑层将变化的数据保存到数据持久层。

因此,必不可少,我们在这里会处理所谓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读取对应的数据持久层的数据,根据业务逻辑,重新组装数据,提供给表示层使用,并负责对数据持久层的增删改操作。

这三个类都以单例的形式设计,因为在应用程序运行期间他们有且仅需要一份内容。