基于工作空間框架實現(xiàn)的iOS分層架構(gòu)實現(xiàn)

iOS分層架構(gòu)簡介

在軟件工程中咕娄,設(shè)計模式(design pattern)是對軟件設(shè)計中普遍存在(反復(fù)出現(xiàn))的各種問題,所提出的解決方案徐块。這個術(shù)語是由埃里虾兀·伽瑪(Erich Gamma)等人在1990年代從建筑設(shè)計領(lǐng)域引入到計算機(jī)科學(xué)的昼激。
設(shè)計模式并不直接用來完成代碼的編寫橙困,而是描述在各種不同情況下凡傅,要怎么解決問題的一種方案夏跷。面向?qū)ο笤O(shè)計模式通常以類或?qū)ο髞砻枋銎渲械年P(guān)系和相互作用槽华,但不涉及用來完成應(yīng)用程序的特定類或?qū)ο蟆TO(shè)計模式能使不穩(wěn)定依賴于相對穩(wěn)定亲雪、具體依賴于相對抽象匆光,避免會引起麻煩的緊耦合终息,以增強(qiáng)軟件設(shè)計面對并適應(yīng)變化的能力周崭。

軟件架構(gòu)設(shè)計與設(shè)計模式的作用類似,都是為了提高軟件系統(tǒng)的“可復(fù)用性”和“可拓展性”摸航,他們二者不同的地方在于酱虎,設(shè)計模式只是面對某一特定問題的策略读串,是面向局部的恢暖,而架構(gòu)設(shè)計相對來說更加的宏觀,更加的全面嫁佳,它是有機(jī)的將這些設(shè)計模式組織起來解決整個應(yīng)用系統(tǒng)的方案脱拼。

在軟件架構(gòu)設(shè)計中比較典型的一種就是分層架構(gòu)設(shè)計,它采用層次劃分方式赌蔑,層次之間是松耦合的跷乐,層次內(nèi)部是高內(nèi)聚的愕提。下圖為iOS分層架構(gòu)設(shè)計:

iOS信息處理應(yīng)用分層架構(gòu)設(shè)計

在上圖中,簡要列舉了分層架構(gòu)設(shè)計的各層的內(nèi)容,以及各層的職責(zé)不见。本篇文章是利用工作空間框架來簡單實現(xiàn)一下分層稳吮,以一個工程的創(chuàng)建為例子來進(jìn)行說明。


工作空間框架實現(xiàn)

整個工程創(chuàng)建的步驟大致如下:

  • 創(chuàng)建工作空間
  • 創(chuàng)建表示層工程喻奥、數(shù)據(jù)持久層和業(yè)務(wù)邏輯層
  • 建立依賴關(guān)系
  • 代碼實現(xiàn)
  • 層內(nèi)配置

創(chuàng)建工作空間

首先,創(chuàng)建一個文件夾甥厦,用來存放我們的工程刀疙,打開Xcode,在上方的菜單欄中選擇File->New->Workspace疚鲤,然后輸入文件名及要保存的位置桶略。
然后我們就會在剛才選擇的文件夾下發(fā)現(xiàn)多了這么個東西:

創(chuàng)建表示層工程焕窝、數(shù)據(jù)持久層和業(yè)務(wù)邏輯層

  1. 創(chuàng)建表示層工程
    打開Workspace,shift + command + N創(chuàng)建新工程虐秋,選擇singleView,輸入PresentationLayer,回車,然后選擇

點(diǎn)擊create,就可以看見workspace中包含了一個project了
2.創(chuàng)建數(shù)據(jù)持久層及業(yè)務(wù)邏輯層
shift + command + N創(chuàng)建新工程,選擇

茅姜,輸入BussinessLogicLayer监透,回車院刁,然后選擇

同理狡刘,創(chuàng)建數(shù)據(jù)持久層,建完后猬腰,workspace內(nèi)情況如下

建立依賴關(guān)系

三個工程的依賴關(guān)系是:

  • BusinessLogicLayer依賴于PersistenceLayer盒延,
  • PresentationLayer依賴于BusinessLogicLayer。
  • BusinessLogicLayer和PersistenceLayer都是框架工程鼠冕。

選擇TARGETS->BussinessLogicLayer->Build Phases->Link Binary With Libraries,選擇左下角的+按鈕添寺,選擇PersistenceLayer.framework,再點(diǎn)擊Add按鈕供鸠,依賴關(guān)系就添加完成了畦贸。以此來將其他依賴創(chuàng)建完畢。

代碼實現(xiàn)

PersistenceLayer中:
創(chuàng)建NoteDAO.swift作為基本數(shù)據(jù)處理類楞捂;
創(chuàng)建Note.swift作為基本類薄坏。
BusinessLogicLayer中
創(chuàng)建NoteBL.swift對數(shù)據(jù)處理進(jìn)一步封裝,實現(xiàn)業(yè)務(wù)邏輯寨闹。
PresentationLayer中
實現(xiàn)UI
詳細(xì)代碼請移步我的GitHub

層內(nèi)配置

frameWork需要進(jìn)行一定的配置胶坠,才能夠被外部引用,首先繁堡,就是本身文件內(nèi)的類和方法沈善,如果想要被外部調(diào)用乡数,需要聲明時加上關(guān)鍵字public,并在Header中將文件添加到Public中闻牡,選擇設(shè)備净赴,并編譯,那么這個frameWork中的文件就能被外部的project訪問了罩润。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末玖翅,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子割以,更是在濱河造成了極大的恐慌金度,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,386評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件严沥,死亡現(xiàn)場離奇詭異猜极,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)消玄,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,142評論 3 394
  • 文/潘曉璐 我一進(jìn)店門跟伏,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人莱找,你說我怎么就攤上這事酬姆。” “怎么了奥溺?”我有些...
    開封第一講書人閱讀 164,704評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長骨宠。 經(jīng)常有香客問我浮定,道長,這世上最難降的妖魔是什么层亿? 我笑而不...
    開封第一講書人閱讀 58,702評論 1 294
  • 正文 為了忘掉前任桦卒,我火速辦了婚禮,結(jié)果婚禮上匿又,老公的妹妹穿的比我還像新娘方灾。我一直安慰自己,他們只是感情好碌更,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,716評論 6 392
  • 文/花漫 我一把揭開白布裕偿。 她就那樣靜靜地躺著,像睡著了一般痛单。 火紅的嫁衣襯著肌膚如雪嘿棘。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,573評論 1 305
  • 那天旭绒,我揣著相機(jī)與錄音鸟妙,去河邊找鬼焦人。 笑死,一個胖子當(dāng)著我的面吹牛重父,可吹牛的內(nèi)容都是我干的花椭。 我是一名探鬼主播,決...
    沈念sama閱讀 40,314評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼房午,長吁一口氣:“原來是場噩夢啊……” “哼矿辽!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起歪沃,我...
    開封第一講書人閱讀 39,230評論 0 276
  • 序言:老撾萬榮一對情侶失蹤嗦锐,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后沪曙,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體奕污,經(jīng)...
    沈念sama閱讀 45,680評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,873評論 3 336
  • 正文 我和宋清朗相戀三年液走,在試婚紗的時候發(fā)現(xiàn)自己被綠了碳默。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,991評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡缘眶,死狀恐怖嘱根,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情巷懈,我是刑警寧澤该抒,帶...
    沈念sama閱讀 35,706評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站顶燕,受9級特大地震影響凑保,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜涌攻,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,329評論 3 330
  • 文/蒙蒙 一欧引、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧恳谎,春花似錦芝此、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,910評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至婚肆,卻和暖如春租副,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背较性。 一陣腳步聲響...
    開封第一講書人閱讀 33,038評論 1 270
  • 我被黑心中介騙來泰國打工用僧, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留结胀,地道東北人。 一個月前我還...
    沈念sama閱讀 48,158評論 3 370
  • 正文 我出身青樓责循,卻偏偏與公主長得像糟港,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子院仿,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,941評論 2 355

推薦閱讀更多精彩內(nèi)容