随着项目开始增长,我倾向于将代码在逻辑上分成几个 .h/.m 文件。我喜欢这样做,特别是当模型部分(MVC 模式应用程序的)是重要部分时。
一个合乎逻辑的例子是将数据加载/保存部分和数据编辑部分(例如所有计算方法)分开。但现在我面临一些循环链接问题:
// DATA SAVING/LOADING PART
#import "DataSavingLoading.h"
#import "DataCalculation.h"
@implementation DataSavingLoading
+ (NSDictionary *)loadData
{
// loading goes here ...
if (!data) {
NSDictionary *newData = [self createData];
[self saveData:newData];
return newData;
}
+ (void)saveData:(NSDictionary *)data { ... }
+ (NSDictionary *)createData
{
NSDictionary *newData = @{...};
return [DataCalculation calculateInitialData:newData];
}
+ (NSDictionary *)loadDataConfiguration { ... }
@end
然后在计算部分:
// DATA CALCULATION PART
#import "DataCalculation.h"
#import "DataSavingLoading.h"
@implementation DataCalculation
+ (NSDictionary *)calculateInitialData:(NSDictionary *)initalData
{
// Get config
NSDictionary *dataConfig = [DataSavingLoading loadDataConfiguration];
// Calculation goes here...
return calculatedDataConfig;
}
@end
数据加载部分包括数据计算部分,因为调用了计算方法。数据计算部分必须包括数据加载部分,因为它需要一些配置内容。我可以对那个循环链接有任何问题吗?或者有没有更好的概念来组织模型部分中的一大堆方法?