你好,歡迎來到IOS教程網

 Ios教程網 >> IOS編程開發 >> IOS開發綜合 >> iOS--觀察者模式

iOS--觀察者模式

編輯:IOS開發綜合

先說說生活中得小例子,還小得時候我們需要喝牛奶,為了喝上新鮮的牛奶,我們往往去一家專門訂購牛奶的店面,把我們的住宅地址,還有訂購的牛奶的品牌告訴店裡面的負責人,然後我們每天就能喝上新鮮的牛奶了,這樣做得好處是,我們不需要去任何地方,店裡的負責人會親自把牛奶送給你。

從中我們也可以發現,這樣做還能避免“生產者”(制造牛奶的廠家)和“消費者”(我們)直接聯系,其實就是降低兩個模塊之間的耦合度。牛奶廠家把各個品牌的牛奶發貨到銷售牛奶的店面,然後通過消費者的訂購信息(牛奶品牌,住宅地址),把牛奶傳遞到我們“消費者”的手中。

 

在IOS開發裡面,可以通過通知來實現這個功能,等以後有機會接觸了KVO,再來好好總結。

注冊通知

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(sendMilk:) name:@"quechao" object:nil];
訂購牛奶的店面就好比IOS裡面的通知中心,注冊了一個通知,名字是quechao,並把self(消費者)作為觀察者,也就是當有名字是quechao的消息發送過來時(廠家把quechao品牌的牛奶送給店面),會執行sendMilk方法,把牛奶送給消費者

發送消息

[[NSNotificationCenter defaultCenter] postNotificationName:@“quechao” object:milk];廠家把quecao品牌的牛奶發送給店面,通知收到消息後執行sendMilk:方法

-(void)sendMilk:(NSNotification *) notification
{
    //code
}

通知方法的優點是分離了生產者和消費者之間的聯系,但正是這樣,往往事情太過於絕對也不好,就像這,一點聯系都沒的話就容易導致代碼的可讀性差,通知多得時候,閱讀起來可能很復雜,沒有思路。

 

  1. 上一頁:
  2. 下一頁:
蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
Copyright © Ios教程網 All Rights Reserved