單接口彤恶,多類 的架構設計

信息勝于事實

APP架構設計有三種方式,我們以這個頁面中間圓形按鈕的頁面跳轉為例:

不管是什么設計坦辟,我們都會有一堆目標ViewController類:

1刊侯、最原始的設計:

ViewController.m

#import "ALiLuXingViewController.h"
#import "ChongZhiViewController.h"
#import "FengLeiViewController.h"
#import "JuHuaSuanViewController.h"
#import "KouBeiWaiMaiViewController.h"
#import "LingJinBiViewController.h"
#import "TaoShengHuoViewController.h"
#import "TianMaoViewController.h"
#import "TianMaoGuoZhiViewController.h"
#import "TianMaoChaoShiViewController.h"

-(void)showALiLuXingViewController
{
    ALiLuXingViewController *aLiLuXingViewController = [[ALiLuXingViewController alloc]init];
    [self.navigationController pushViewController:aLiLuXingViewController animated:YES];
}

-(void)showChongZhiViewController
{
    ChongZhiViewController *chongZhiViewController = [[ChongZhiViewController alloc]init];
    [self.navigationController pushViewController:chongZhiViewController animated:YES];
}

-(void)showFengLeiViewController
{
    FengLeiViewController *fengLeiViewController = [[FengLeiViewController alloc]init];
    [self.navigationController pushViewController:fengLeiViewController animated:YES];
}

-(void)showJuHuaSuanViewController
{
    JuHuaSuanViewController *juHuaSuanViewController = [[JuHuaSuanViewController alloc]init];
    [self.navigationController pushViewController:juHuaSuanViewController animated:YES];
}

-(void)showKouBeiWaiMaiViewController
{
    KouBeiWaiMaiViewController *kouBeiWaiMaiViewController = [[KouBeiWaiMaiViewController alloc]init];
    [self.navigationController pushViewController:kouBeiWaiMaiViewController animated:YES];
}

-(void)showLingJinBiViewController
{
    LingJinBiViewController *lingJinBiViewController = [[LingJinBiViewController alloc]init];
    [self.navigationController pushViewController:lingJinBiViewController animated:YES];
}

-(void)showTaoShengHuoViewController
{
    TaoShengHuoViewController *taoShengHuoViewController = [[TaoShengHuoViewController alloc]init];
    [self.navigationController pushViewController:taoShengHuoViewController animated:YES];
}

-(void)showTianMaoViewController
{
    TianMaoViewController *tianMaoViewController = [[TianMaoViewController alloc]init];
    [self.navigationController pushViewController:tianMaoViewController animated:YES];
}

-(void)showTianMaoGuoZhiViewController
{
    TianMaoGuoZhiViewController *tianMaoGuoZhiViewController = [[TianMaoGuoZhiViewController alloc]init];
    [self.navigationController pushViewController:tianMaoGuoZhiViewController animated:YES];
}

-(void)showTianMaoChaoShiViewController
{
    TianMaoChaoShiViewController *tianMaoChaoShiViewController = [[TianMaoChaoShiViewController alloc]init];
    [self.navigationController pushViewController:tianMaoChaoShiViewController animated:YES];
}

2?單類,多接口 設計:

RouteInterface.h

#ifndef ViewControllerSplit_RouteInterface_h
#define ViewControllerSplit_RouteInterface_h
@protocol RouteInterface <NSObject>

@optional
-(void)showALiLuXingViewController;
-(void)showChongZhiViewController;
-(void)showFengLeiViewController;
-(void)showJuHuaSuanViewController;
-(void)showKouBeiWaiMaiViewController;
-(void)showLingJinBiViewController;
-(void)showTaoShengHuoViewController;
-(void)showTianMaoViewController;
-(void)showTianMaoGuoZhiViewController;
-(void)showTianMaoChaoShiViewController;
@end
#endif

ViewController.h

#import <UIKit/UIKit.h>
#import "RouteInterface.h"

@interface ViewController : UIViewController

@property (nonatomic, weak) id<RouteInterface> routeHandle;
@end

ViewController.m

-(void)showALiLuXingViewController
{
    [self.routeHandle showALiLuXingViewController];
}

-(void)showChongZhiViewController
{
    [self.routeHandle showChongZhiViewController];
}

-(void)showFengLeiViewController
{
    [self.routeHandle showFengLeiViewController];
}

-(void)showJuHuaSuanViewController
{
    [self.routeHandle showJuHuaSuanViewController];
}

-(void)showKouBeiWaiMaiViewController
{
    [self.routeHandle showKouBeiWaiMaiViewController];
}

-(void)showLingJinBiViewController
{
    [self.routeHandle showLingJinBiViewController];
}

-(void)showTaoShengHuoViewController
{
    [self.routeHandle showTaoShengHuoViewController];
}

-(void)showTianMaoViewController
{
    [self.routeHandle showTianMaoViewController];
}

-(void)showTianMaoGuoZhiViewController
{
    [self.routeHandle showTianMaoGuoZhiViewController];
}

-(void)showTianMaoChaoShiViewController
{
    [self.routeHandle showTianMaoChaoShiViewController];
}

3?單接口锉走,多類 設計:

RouteInterface.h

#ifndef ViewControllerSplit_RouteInterface_h
#define ViewControllerSplit_RouteInterface_h
@protocol RouteInterface <NSObject>

@optional
-(void)showViewController;
@end
#endif

ViewController.h

#import <UIKit/UIKit.h>
#import "RouteInterface.h"

@interface ViewController : UIViewController

@property (nonatomic, weak) id<RouteInterface> aLiLuXingRouteHandle;
@property (nonatomic, weak) id<RouteInterface> chongZhiRouteHandle;
@property (nonatomic, weak) id<RouteInterface> fengLeiRouteHandle;
@property (nonatomic, weak) id<RouteInterface> juHuaSuanRouteHandle;
@property (nonatomic, weak) id<RouteInterface> kouBeiWaiMaiRouteHandle;
@property (nonatomic, weak) id<RouteInterface> lingJinBiRouteHandle;
@property (nonatomic, weak) id<RouteInterface> taoShengHuoRouteHandle;
@property (nonatomic, weak) id<RouteInterface> tianMaoRouteHandle;
@property (nonatomic, weak) id<RouteInterface> tianMaoGuoZhiRouteHandle;
@property (nonatomic, weak) id<RouteInterface> tianMaoChaoShiRouteHandle;
@end

ViewController.m

-(void)showALiLuXingViewController
{
    [self.aLiLuXingRouteHandle showViewController];
}

-(void)showChongZhiViewController
{
    [self.chongZhiRouteHandle showViewController];
}

-(void)showFengLeiViewController
{
    [self.fengLeiRouteHandle showViewController];
}

-(void)showJuHuaSuanViewController
{
    [self.juHuaSuanRouteHandle showViewController];
}

-(void)showKouBeiWaiMaiViewController
{
    [self.kouBeiWaiMaiRouteHandle showViewController];
}

-(void)showLingJinBiViewController
{
    [self.lingJinBiRouteHandle showViewController];
}

-(void)showTaoShengHuoViewController
{
    [self.taoShengHuoRouteHandle showViewController];
}

-(void)showTianMaoViewController
{
    [self.tianMaoRouteHandle showViewController];
}

-(void)showTianMaoGuoZhiViewController
{
    [self.tianMaoGuoZhiRouteHandle showViewController];
}

-(void)showTianMaoChaoShiViewController
{
    [self.tianMaoChaoShiRouteHandle showViewController];
}

后記(下面以聊家常為主滨彻,沒時間沒興趣的朋友請直接忽略):

目前,我的行為準則只剩兩個:1?減小焦點挪蹭;2?疊加信息亭饵。據說,與王陽明的“心學”類似梁厉。

其中辜羊,疊加信息是根本,減小焦點是技巧。

任何事情的困難八秃,都是信息不足造成的碱妆。

包括所謂的行動力不足,也可以通過增加信息來解決昔驱。比如疹尾,不斷增加“行動有巨大好處,不行動將立馬毀滅”這樣的信息舍悯。

人對人的控制航棱,也是從增加單方面信息下手的。只要不停地禁止其它聲音萌衬,只允許單方面發(fā)聲,即使把更多的自由發(fā)放給人們它抱,人們還是會無可避免地按照控制者指定的方向前進秕豫。

奴役,從來都是通過信息管制來最終實現的观蓄。

而個人想自救混移,也只有從信息獲取這里下手,才能根本解決侮穿。

但是歌径,現在是一個信息爆炸的時代,全球每天有36萬7千本書出版亲茅。你是不可能全方面地獲取所有信息的回铛。
為了從世界巨量信息中拯救自己,我們只能采取收縮策略:把自己的關注點盡可能地減少縮小克锣。最好是只關注一個這個世界上除了你茵肃,沒有人會關注的點上。
然后袭祟,收集所有關于這個足夠小的點的信息验残,讓這個單點全部信息塞進大腦,反復啄磨巾乳。如果在這個足夠小的點上您没,你能更好地重組現有的信息,甚至創(chuàng)造新信息胆绊,就是對這個世界巨大的貢獻氨鹏。

分享一個TED:
http://www.miaopai.com/show/OXEFXdUIU90yduUazs1gBA__.htm

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市辑舷,隨后出現的幾起案子喻犁,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,968評論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件肢础,死亡現場離奇詭異还栓,居然都是意外死亡,警方通過查閱死者的電腦和手機传轰,發(fā)現死者居然都...
    沈念sama閱讀 88,601評論 2 382
  • 文/潘曉璐 我一進店門剩盒,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人慨蛙,你說我怎么就攤上這事辽聊。” “怎么了期贫?”我有些...
    開封第一講書人閱讀 153,220評論 0 344
  • 文/不壞的土叔 我叫張陵跟匆,是天一觀的道長。 經常有香客問我通砍,道長玛臂,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,416評論 1 279
  • 正文 為了忘掉前任封孙,我火速辦了婚禮迹冤,結果婚禮上,老公的妹妹穿的比我還像新娘虎忌。我一直安慰自己泡徙,他們只是感情好,可當我...
    茶點故事閱讀 64,425評論 5 374
  • 文/花漫 我一把揭開白布膜蠢。 她就那樣靜靜地躺著堪藐,像睡著了一般。 火紅的嫁衣襯著肌膚如雪狡蝶。 梳的紋絲不亂的頭發(fā)上庶橱,一...
    開封第一講書人閱讀 49,144評論 1 285
  • 那天,我揣著相機與錄音贪惹,去河邊找鬼苏章。 笑死,一個胖子當著我的面吹牛奏瞬,可吹牛的內容都是我干的枫绅。 我是一名探鬼主播,決...
    沈念sama閱讀 38,432評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼硼端,長吁一口氣:“原來是場噩夢啊……” “哼并淋!你這毒婦竟也來了?” 一聲冷哼從身側響起珍昨,我...
    開封第一講書人閱讀 37,088評論 0 261
  • 序言:老撾萬榮一對情侶失蹤县耽,失蹤者是張志新(化名)和其女友劉穎句喷,沒想到半個月后,有當地人在樹林里發(fā)現了一具尸體兔毙,經...
    沈念sama閱讀 43,586評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡唾琼,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,028評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現自己被綠了澎剥。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片锡溯。...
    茶點故事閱讀 38,137評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖哑姚,靈堂內的尸體忽然破棺而出祭饭,到底是詐尸還是另有隱情,我是刑警寧澤叙量,帶...
    沈念sama閱讀 33,783評論 4 324
  • 正文 年R本政府宣布倡蝙,位于F島的核電站,受9級特大地震影響绞佩,放射性物質發(fā)生泄漏悠咱。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,343評論 3 307
  • 文/蒙蒙 一征炼、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧躬贡,春花似錦谆奥、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,333評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至檐蚜,卻和暖如春魄懂,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背闯第。 一陣腳步聲響...
    開封第一講書人閱讀 31,559評論 1 262
  • 我被黑心中介騙來泰國打工市栗, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人咳短。 一個月前我還...
    沈念sama閱讀 45,595評論 2 355
  • 正文 我出身青樓填帽,卻偏偏與公主長得像,于是被迫代替她去往敵國和親咙好。 傳聞我的和親對象是個殘疾皇子篡腌,可洞房花燭夜當晚...
    茶點故事閱讀 42,901評論 2 345

推薦閱讀更多精彩內容