国产亚洲精品福利在线无卡一,国产精久久一区二区三区,亚洲精品无码国模,精品久久久久久无码专区不卡

當(dāng)前位置: 首頁(yè) > news >正文

wordpress寄出郵箱地址小學(xué)生班級(jí)優(yōu)化大師

wordpress寄出郵箱地址,小學(xué)生班級(jí)優(yōu)化大師,二次元網(wǎng)站模板,企業(yè)查查官網(wǎng)登錄入口文章目錄 前言MVC架構(gòu)模式基本概念通信方式簡(jiǎn)單應(yīng)用 總結(jié) 前言 “MVC”,即Model(模型),View(視圖),Controller(控制器),MVC模式是架構(gòu)模式的一種。 關(guān)于“架構(gòu)模式”&a…

文章目錄

  • 前言
  • MVC架構(gòu)模式
    • 基本概念
    • 通信方式
    • 簡(jiǎn)單應(yīng)用
  • 總結(jié)

前言

“MVC”,即Model(模型),View(視圖),Controller(控制器),MVC模式是架構(gòu)模式的一種。

關(guān)于“架構(gòu)模式”:

架構(gòu)模式(Architectural Pattern)是軟件架構(gòu)中常見(jiàn)的組織結(jié)構(gòu)解決方案,用于指導(dǎo)大型軟件系統(tǒng)的設(shè)計(jì)。它們描述了軟件系統(tǒng)常見(jiàn)的組織結(jié)構(gòu)和它們之間的相互關(guān)系,為構(gòu)建復(fù)雜軟件系統(tǒng)提供了經(jīng)驗(yàn)證的解決方案。架構(gòu)模式提供了一種通用的、可重用的解決方案來(lái)處理在軟件設(shè)計(jì)中遇到的常見(jiàn)問(wèn)題。

常見(jiàn)的架構(gòu)模式包括:

1.分層模式(Layered Pattern)
將系統(tǒng)分割成多個(gè)層次,每一層提供特定的服務(wù),并且只與相鄰層次通信。例如,一個(gè)典型的三層架構(gòu)包括表示層(用戶界面)、業(yè)務(wù)邏輯層和數(shù)據(jù)訪問(wèn)層。
2.客戶端-服務(wù)器模式(Client-Server Pattern)
系統(tǒng)分為兩部分:服務(wù)器提供服務(wù),客戶端請(qǐng)求服務(wù)。這種模式廣泛應(yīng)用于網(wǎng)絡(luò)應(yīng)用程序。
3.模型-視圖-控制器模式(Model-View-Controller Pattern, MVC)
用于實(shí)現(xiàn)用戶界面的分離關(guān)注點(diǎn),將應(yīng)用程序分為三個(gè)核心組件:模型(數(shù)據(jù)和業(yè)務(wù)邏輯)、視圖(用戶界面)和控制器(業(yè)務(wù)邏輯和用戶界面之間的通信)。
4.管道-過(guò)濾器模式(Pipeline-Filter Pattern)
在這種模式中,每個(gè)處理步驟(過(guò)濾器)作為數(shù)據(jù)流(管道)中的一個(gè)階段,數(shù)據(jù)流從一個(gè)過(guò)濾器流向下一個(gè)過(guò)濾器。
5.事件驅(qū)動(dòng)架構(gòu)模式(Event-Driven Pattern)
系統(tǒng)作為一系列異步事件和回調(diào)處理函數(shù)的集合。這種模式適用于需要高響應(yīng)性和可伸縮性的應(yīng)用。
6.微內(nèi)核模式(Microkernel Pattern)
系統(tǒng)的核心功能由一個(gè)小型的、可擴(kuò)展的內(nèi)核提供,其他功能則作為插件或模塊附加在內(nèi)核周圍。
7.代理模式(Proxy Pattern)
為其他對(duì)象提供一個(gè)代理或占位符,以控制對(duì)這個(gè)對(duì)象的訪問(wèn)。這在遠(yuǎn)程代理、虛擬代理和保護(hù)代理中很常見(jiàn)。
8.發(fā)布-訂閱模式(Publish-Subscribe Pattern)
一種事件驅(qū)動(dòng)的通信模式,發(fā)布者發(fā)送事件,而訂閱者對(duì)這些事件做出響應(yīng),但發(fā)布者和訂閱者之間沒(méi)有直接的聯(lián)系。
9.黑板模式(Blackboard Pattern)
多個(gè)模塊或組件通過(guò)一個(gè)共享的數(shù)據(jù)空間(黑板)進(jìn)行通信和協(xié)作,以解決復(fù)雜問(wèn)題。
10.MVC的變體模式
包括表現(xiàn)層-業(yè)務(wù)邏輯層-數(shù)據(jù)訪問(wèn)層(Presentation-Logic-Data Access, PLDA)、模型-視圖-視圖模型(Model-View-ViewModel, MVVM)和模型-視圖-適配器(Model-View-Adapter, MVA)等。

MVC架構(gòu)模式

基本概念

‘M’——模型(Model):視圖類所需要的數(shù)據(jù),例如:表格需要顯示的文字。
‘V’——視圖(View):屏幕上顯示的UI,響應(yīng)用戶事件,接受用戶輸入。例如:按鈕,標(biāo)簽,進(jìn)度條等。
‘C’——控制器(Controller):連接視圖類和模型類,任務(wù)是使數(shù)據(jù)顯示在屏幕上,主要負(fù)責(zé)轉(zhuǎn)發(fā)請(qǐng)求,對(duì)請(qǐng)求進(jìn)行處理。例如:控制器將表格需要使用的數(shù)據(jù)“填入”表格視圖中,將表格視圖顯示出來(lái)。

關(guān)于這三者的關(guān)系,我參考了如下圖例來(lái)理解:

斯坦福大學(xué)的iOS公開(kāi)課第一課:
在這里插入圖片描述
蘋果官方的圖解:
在這里插入圖片描述
在這里可以看出來(lái)“V”和“M”是相互獨(dú)立的,在iOS開(kāi)發(fā)的MVC框架中,我們可以理解為view和model相互獨(dú)立,兩者屬于不知道對(duì)方的存在的陌生人關(guān)系。

??Model 和 View 是相互獨(dú)立的
這是很容易犯錯(cuò)的一點(diǎn),因?yàn)镸VC 架構(gòu)模式是在軟件設(shè)計(jì)中通用的,不只是iOS 開(kāi)發(fā)。iOS 開(kāi)發(fā)中的MVC模式是基于傳統(tǒng)的MVC 架構(gòu)的,只是在具體實(shí)現(xiàn)上有所不同。Apple 官方對(duì)于iOS開(kāi)發(fā)中的MVC 模式和傳統(tǒng)的MVC 架構(gòu)有所不同,如果查閱傳統(tǒng)的MVC 架構(gòu)會(huì)發(fā)現(xiàn),View 和Model 之間是有通信的。
(轉(zhuǎn)自 SungKaikai 文章鏈接)

通信方式

  1. 控制器C可以直接訪問(wèn)模型M:將模型直接作為控制器的屬性。
  2. 控制器C可以直接訪問(wèn)視圖V:將視圖直接作為控制器的屬性。
  3. 模型M與視圖V無(wú)法直接訪問(wèn)對(duì)方:二者完全解耦,不能引用對(duì)方,把對(duì)方設(shè)置為屬性。
  4. 視圖V到控制器C的通信:
    目標(biāo)動(dòng)作機(jī)制(target - action):用戶與視圖交互觸發(fā)控制器的方法。例如:點(diǎn)擊按鈕后實(shí)現(xiàn)視界面跳轉(zhuǎn),網(wǎng)絡(luò)請(qǐng)求,刷新UI等。
    委托機(jī)制(delegate):視圖向控制器詢問(wèn)某些自己無(wú)法決定的事情,或是讓控制器幫助自己做一些自己獨(dú)立無(wú)法完成的事情。 因?yàn)榭刂破鞑攀钦莆杖值慕巧?#xff0c;很多時(shí)候視圖是無(wú)法自己做決定的。例如:表格問(wèn)控制器:我可以滾動(dòng)么?然后控制器給予回答告知是否可以繼續(xù)滾動(dòng)。 如果表格的高度很小,那么就可以不讓它滾動(dòng)。但是如果表格的高度已經(jīng)超過(guò)了屏幕的高度,這時(shí)候如果讓它自作主張無(wú)法滾動(dòng)就不好了。
    數(shù)據(jù)源機(jī)制(dataSource):視圖讓控制器給它將要顯示的數(shù)據(jù)。例如:音樂(lè)的數(shù)據(jù)存在于模型里,控制器訪問(wèn)模型,從模型里拿到數(shù)據(jù)后告訴視圖如何顯示出歌曲。
  5. 模型M到控制器C的通信
    廣播機(jī)制(Notification):控制器注冊(cè)監(jiān)聽(tīng)某模型數(shù)據(jù)變化的廣播頻道,當(dāng)此模型數(shù)據(jù)變化后向該控制器發(fā)送廣播,告知模型變化情況。
    KVO機(jī)制(Key-Value Observing):模型作為控制器的屬性,當(dāng)模型屬性被修改后,持有此模型屬性的控制器就會(huì)收到通知。

——斯坦福大學(xué)iOS開(kāi)發(fā)公開(kāi)課總結(jié)(一):iOS的MVC框架

簡(jiǎn)單應(yīng)用

先看看創(chuàng)建的文件:
在這里插入圖片描述
1.創(chuàng)建 Model
模型通常是一個(gè)或多個(gè)類,它們包含數(shù)據(jù)和對(duì)數(shù)據(jù)進(jìn)行操作的方法。例如,一個(gè)簡(jiǎn)單的Person測(cè)試模型:

#import <Foundation/Foundation.h>NS_ASSUME_NONNULL_BEGIN@interface TestModel : NSObject@property (nonatomic, strong) NSString *name;
@property (nonatomic, strong) NSNumber *age;- (void)performAction;@endNS_ASSUME_NONNULL_END
#import "TestModel.h"@implementation TestModel- (void)performAction {// 這里可以放置一些業(yè)務(wù)邏輯,例如打印一條消息NSLog(@"Hello, my name is %@ and I am %@ years old.", self.name, self.age);
}@end

這里的代碼存在一些bug,后續(xù)筆者修改后會(huì)再呈現(xiàn)完整代碼。

總結(jié)

在模型類里是不能調(diào)用控制器的方法的,模型類只能被控制器調(diào)用并且當(dāng)所擁有的數(shù)據(jù)改變后通知使用自己的控制器數(shù)據(jù)的改變。更不能直接給視圖通知讓視圖自己更新UI。

參考文章:iOS 架構(gòu)設(shè)計(jì)代碼實(shí)例學(xué)習(xí)-MVC 模式
????? 你真的了解MVC嗎?

http://aloenet.com.cn/news/41784.html

相關(guān)文章:

  • 外貿(mào)平臺(tái)免費(fèi)網(wǎng)站網(wǎng)站優(yōu)化推廣平臺(tái)
  • 學(xué)做網(wǎng)站設(shè)計(jì)需要多少錢網(wǎng)頁(yè)制作教程步驟
  • 網(wǎng)站建設(shè)整個(gè)過(guò)程個(gè)人介紹網(wǎng)頁(yè)制作
  • 做外貿(mào)在哪個(gè)網(wǎng)站北京百度推廣電話號(hào)碼
  • 上海阿里巴巴做網(wǎng)站免費(fèi)的短視頻app大全下載
  • 商業(yè)網(wǎng)站改版需要多久愛(ài)站網(wǎng)綜合查詢
  • 無(wú)錫工廠網(wǎng)站建設(shè)南寧百度關(guān)鍵詞推廣
  • 松江營(yíng)銷型網(wǎng)站建設(shè)b站是哪個(gè)網(wǎng)站
  • ui設(shè)計(jì)做兼職的網(wǎng)站如何寫市場(chǎng)調(diào)研報(bào)告
  • 女裝網(wǎng)站建設(shè)規(guī)劃網(wǎng)站怎樣被百度收錄
  • 怎么做網(wǎng)站的后臺(tái)管理系統(tǒng)手機(jī)360優(yōu)化大師官網(wǎng)
  • 微網(wǎng)站后臺(tái)怎么注冊(cè)互聯(lián)網(wǎng)推廣平臺(tái)有哪些公司
  • 辦公室現(xiàn)代簡(jiǎn)約裝修效果圖武漢seo服務(wù)
  • 金山石化網(wǎng)站建設(shè)襄陽(yáng)seo優(yōu)化排名
  • 做網(wǎng)站建設(shè)的上市公司有哪些百度競(jìng)價(jià)是seo還是sem
  • lamp網(wǎng)站開(kāi)發(fā) pdf企業(yè)網(wǎng)站建設(shè)需求分析
  • 做便民工具網(wǎng)站怎么樣百度問(wèn)答兼職怎么做
  • 網(wǎng)站怎么防采集如何推廣普通話
  • 長(zhǎng)子營(yíng)網(wǎng)站建設(shè)產(chǎn)品優(yōu)化是什么意思
  • 做3d模型的叫什么牛的網(wǎng)站磁力鏈搜索引擎入口
  • 黃色風(fēng)格網(wǎng)站模板商城小程序
  • 十堰網(wǎng)站建設(shè)兼職發(fā)軟文的平臺(tái)
  • 長(zhǎng)沙的互聯(lián)網(wǎng)網(wǎng)站公司營(yíng)銷培訓(xùn)方案
  • 門戶網(wǎng)站系統(tǒng)設(shè)計(jì)sem全稱
  • wordpress qq客服代碼seo有什么作用
  • 廣州網(wǎng)站提升排名百度指數(shù)使用指南
  • 做發(fā)票網(wǎng)站淘寶如何刷關(guān)鍵詞增加權(quán)重
  • 可視化網(wǎng)站建設(shè)軟件百度競(jìng)價(jià)品牌廣告
  • 專業(yè) 網(wǎng)站設(shè)計(jì)公司外貿(mào)網(wǎng)站seo教程
  • 北京公司網(wǎng)站建設(shè)價(jià)格廣州網(wǎng)站制作服務(wù)