MVC-設(shè)計(jì)模式之王-創(chuàng)新互聯(lián)

MVC -設(shè)計(jì)模式之王

創(chuàng)新互聯(lián)公司堅(jiān)持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:網(wǎng)站設(shè)計(jì)制作、做網(wǎng)站、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時(shí)代的漳州網(wǎng)站設(shè)計(jì)、移動媒體設(shè)計(jì)的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!

Model View Controller 是Cocoa的基石之一,且毫無疑問的是所有設(shè)計(jì)模式中最常用的設(shè)計(jì)模式,它根據(jù)你的應(yīng)用中的一般角色去分類對象,鼓勵在完全分離的模式下分角色。

          Model:這個(gè)對象hold住你的應(yīng)用數(shù)據(jù),且定義如何去操作它,例如本例中就是Album類。

          View:這個(gè)對象掌管了Model的可視化顯示,和控制用戶的交互,基本上所有的都是UIView和它的子類。在本例中這個(gè)就是被分離成的AlbumView類。

          Controller:控制器是調(diào)節(jié)所有工作的調(diào)節(jié)器,它訪問模型中的數(shù)據(jù),然后用視圖去顯示它,根據(jù)要求監(jiān)聽事件和操作數(shù)據(jù)。你能想象在這個(gè)哪個(gè)是Controller么,就是ViewController.

視圖和模型通過控制器去交流的場景可以被描述成以下圖:

MVC -設(shè)計(jì)模式之王

如果在Model中有任何數(shù)據(jù)變化,那么它就會通知Controller,反過來,Controller更新在View中的數(shù)據(jù),View可以通知Controller關(guān)于用戶的行為,然后Controller要么根據(jù)需要或者檢索要求的數(shù)據(jù)去更新Model。

你也許會懷疑為什么不只是創(chuàng)建了Controller然后將View和Model一起放到里面去實(shí)現(xiàn)?那樣看起來不是更容易么?

這所有的所有都是為了是代碼分離化和提高可重用性。理想情況下,視圖應(yīng)該會從Model中完全分離出來,如果視圖不依賴于某個(gè)具體的Model的實(shí)現(xiàn)部分,那么它可以用不同的Model去展示其他一些數(shù)據(jù)來實(shí)現(xiàn)它的可重用性。

例如:如果將來你想添加一些電影和書籍到你的庫中去,你仍然可以使用相同的AlbumView去展示你的電影和書籍的對象,更進(jìn)一步說,如果你想去創(chuàng)建一個(gè)工程去處理專輯,你可以很簡單的去重用你的Album類,因?yàn)樗灰蕾囉谌魏我粋€(gè)視圖。這就是MVC的魔力。

如何實(shí)現(xiàn)MVC模式

首先,你需要確保你的工程中的每一個(gè)類都是Controller,或者View,或者M(jìn)odel,不要講任何兩個(gè)中的角色的任務(wù)連接在一塊,通過創(chuàng)建Album和AlbumV類你已經(jīng)做了一個(gè)很好的工作。

其次,為了確保遵守這個(gè)工作方法,你應(yīng)該創(chuàng)建三個(gè)工程組去hold住你的代碼,每類一個(gè)分組。

按住Command+option+N鍵,創(chuàng)建一個(gè)組,名為Model,同樣創(chuàng)建View和Controller,將Album.h和Album.m拖入Model中,拖動AlbumView.hAlbumView.m的視圖組,最后拖ViewController.hViewController.m到控制器組.

這時(shí)候你的工程結(jié)構(gòu)應(yīng)該看起來是這樣的:

MVC -設(shè)計(jì)模式之王

現(xiàn)在看起來沒有那些文件浮在四周,看著好多了。顯然你可以有其他的組和類,但是這個(gè)應(yīng)用中的核心就是包含在這三個(gè)類中的。

既然你的組成部分已經(jīng)被組織起來了,你需要從別的地方去獲得album的數(shù)據(jù),你將會創(chuàng)建一個(gè)API類去在全部的代碼中去管理這些數(shù)據(jù)-這將會在你的下一個(gè)設(shè)計(jì)模式-單例中得到展示。

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。

當(dāng)前題目:MVC-設(shè)計(jì)模式之王-創(chuàng)新互聯(lián)
本文網(wǎng)址:http://bm7419.com/article4/ddhjoe.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App設(shè)計(jì)、微信公眾號ChatGPT、軟件開發(fā)全網(wǎng)營銷推廣、網(wǎng)站導(dǎo)航

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)