本篇內(nèi)容主要講解“JS常用的設(shè)計(jì)模式是什么”,感興趣的朋友不妨來(lái)看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來(lái)帶大家學(xué)習(xí)“JS常用的設(shè)計(jì)模式是什么”吧!
創(chuàng)新互聯(lián)擁有一支富有激情的企業(yè)網(wǎng)站制作團(tuán)隊(duì),在互聯(lián)網(wǎng)網(wǎng)站建設(shè)行業(yè)深耕十載,專業(yè)且經(jīng)驗(yàn)豐富。十載網(wǎng)站優(yōu)化營(yíng)銷經(jīng)驗(yàn),我們已為上千多家中小企業(yè)提供了成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站制作、外貿(mào)網(wǎng)站建設(shè)解決方案,按需開(kāi)發(fā)網(wǎng)站,設(shè)計(jì)滿意,售后服務(wù)無(wú)憂。所有客戶皆提供一年免費(fèi)網(wǎng)站維護(hù)!MVC模式的意思是,軟件可以分成三個(gè)部分。
視圖(View):用戶界面。
控制器(Controller):業(yè)務(wù)邏輯
模型(Model):數(shù)據(jù)保存
各部分之間的通信方式如下。
View傳送指令到Controller
Controller完成業(yè)務(wù)邏輯后,要求Model改變狀態(tài)
Model將新的數(shù)據(jù)發(fā)送到View,用戶得到反饋
所有通信都是單向的。
接受用戶指令時(shí),MVC可以分成兩種方式。一種是通過(guò)View接受指令,傳遞給Controller。
另一種是直接通過(guò)controller接受指令。
實(shí)際項(xiàng)目往往采用更靈活的方式,以Backbone.js為例。
1.用戶可以向View發(fā)送指令(DOM事件),再由View直接要求Model改變狀態(tài)。
2.用戶也可以直接向Controller發(fā)送指令(改變URL觸發(fā)hashChange事件),再由Controller發(fā)送給View。
3.Controller非常薄,只起到路由的作用,而View非常厚,業(yè)務(wù)邏輯都部署在View。所以,Backbone索性取消了Controller,只保留一個(gè)Router(路由器)。
MVP模式將Controller改名為Presenter,同時(shí)改變了通信方向。
1.各部分之間的通信,都是雙向的。
2.View與Model不發(fā)生聯(lián)系,都通過(guò)Presenter傳遞。
3.View非常薄,不部署任何業(yè)務(wù)邏輯,稱為"被動(dòng)視圖"(PassiveView),即沒(méi)有任何主動(dòng)性,而Presenter非常厚,所有邏輯都部署在那里。
MVVM模式將Presenter改名為ViewModel,基本上與MVP模式完全一致。
的區(qū)別是,它采用雙向綁定(data-binding):View的變動(dòng),自動(dòng)反映在ViewModel,反之亦然。Angular和Ember都采用這種模式。
到此,相信大家對(duì)“JS常用的設(shè)計(jì)模式是什么”有了更深的了解,不妨來(lái)實(shí)際操作一番吧!這里是創(chuàng)新互聯(lián)建站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!