雖然鏈式編程很少見,但是某些場合下,如果能夠巧妙利用block 實現鏈式編程的話,不僅會提高開發(fā)效率,而且代碼很清晰直觀!也許你會愛上它的!學習它,你只需記住它的寫法就行了。
我曾經做過一個藍牙項目,由于步驟比較多!因為常規(guī)寫法要調用很多方法一大堆代碼看起來也暈暈的,后來,使用到鏈式編程,代碼易讀使用更方便!下面分享一下鏈式編程的簡單使用!
鏈式編程,沒什么難,就是利用block直接按照格式寫就行了。
下面用一個例子說明:我要去市場買菜!!!(常規(guī)寫法:)
-首先:新建一個Person類
創(chuàng)建方法(常規(guī)寫法):
// 無返回值
- (void)peoples; // 誰
- (void)byBuses; // 坐公交去
- (void)buyVege; // 買東西-
實現方法:
// 無返回值
- (void)peoples
{
NSLog(@"我");
}- (void)byBuses { NSLog(@"坐公交去"); } - (void)buyVege { NSLog(@"買西紅柿和茄子"); }
-
在main函數調用:
Person *p = [[Person alloc] init];[p peoples]; [p byBuses]; [p buyVege];
打印結果:
打印結果.png
缺點:如果有許多方法呢?在調用的時候那就要寫好多行代碼,而且也不好看!
用block 巧妙使用鏈式編程:
和上面一樣,就是注意格式寫法而已,并且多了個返回值。
聲明方法:
// 我做車去買菜
- (Person *(^)(NSString *name))people; // 誰
- (Person *(^)())byBus;// 做公交
- (Person *(^)(NSString *VegName))buyVegetables; // 去買菜-
實現方法:
// 我做車去買菜
- (Person *(^)(NSString *))people
{
return ^(NSString *name){
NSLog(@"帥哥:%@",name);
return self;
};
}- (Person *(^)())byBus { return ^{ NSLog(@"坐公交去"); return self; }; } - (Person *(^)(NSString *))buyVegetables { return ^(NSString *buyVege){ NSLog(@"買:%@",buyVege); return self; }; }
在main函數調用:
Person *p = [[Person alloc] init];
// 只需用點就實現調用了
p.people(@"光明程輝").byBus().buyVegetables(@"西紅柿、茄子");
- 實現打印結果:
打印結果.png