iOS中利用链式编程思想实现计算器
2016-07-27 本文已影响360人
打电话记错号码的人
作品链接:http://www.jianshu.com/users/1e0f5e6f73f6/top_articles
1.声明加减乘除和结果的方法
@property (nonatomic, assign) int result;
- (PHCalculateManager *(^)(int))add;
- (PHCalculateManager *(^)(int))minus;
- (PHCalculateManager *(^)(int))multiply;
- (PHCalculateManager *(^)(int))divide;
2.实现加减乘除的方法
- (PHCalculateManager *(^)(int))add
{
return ^(int value){
_result += value;
return self;
};
}
- (PHCalculateManager *(^)(int))minus
{
return ^(int value){
_result -= value;
return self;
};
}
- (PHCalculateManager *(^)(int))multiply
{
return ^(int value){
_result *= value;
return self;
};
}
- (PHCalculateManager *(^)(int))divide
{
return ^(int value){
_result /= value;
return self;
};
}
3.创建计算管理者
- 把所有的计算代码放在这里
+ (int)PH_makeCalculate:(void (^)(PHCalculateManager *))block
{
// 创建计算管理者
PHCalculateManager *calculateManager = [[PHCalculateManager alloc] init];
// 执行计算
block(calculateManager);
return calculateManager.result;
}
4.调用计算管理者
- (void)viewDidLoad {
[super viewDidLoad];
int result = [NSObject PH_makeCalculate:^(PHCalculateManager *calculateManager) {
calculateManager.add(10).minus(2).multiply(5).divide(4);
}];
NSLog(@"%d",result);
}