溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

github中解耦與MVC是什么

發(fā)布時(shí)間:2021-12-20 16:14:56 來(lái)源:億速云 閱讀:127 作者:iii 欄目:大數(shù)據(jù)

本篇內(nèi)容主要講解“github中解耦與MVC是什么”,感興趣的朋友不妨來(lái)看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來(lái)帶大家學(xué)習(xí)“github中解耦與MVC是什么”吧!

什么是解耦?

軟件工程有個(gè)熟悉的概念:高內(nèi)聚,低耦合。如果我們需要比較高的凝聚效果,我們當(dāng)然會(huì)要先解除模塊之間的緊密關(guān)系。

解耦:把你的代碼組織成最小組織單位(模塊),并限制他們之間的交互。

當(dāng)你將你的代碼解除耦合后,在你需要更換一個(gè)已經(jīng)解耦的模塊時(shí),其他的模塊仍然能夠正常工作。

一個(gè)解耦的例子:

該函數(shù)耦合比較緊密,增大了依賴類的數(shù)目

void function(Date date, Selection selection)
{
    TimeZone tz = selection.getRecoder().getLocation().getTimeZone();
}

解除耦合:

解除了多余的依賴類,函數(shù)接口只要求提供需要的東西,而不是挖通了調(diào)用的層次關(guān)系 - 實(shí)現(xiàn)了簡(jiǎn)單的解耦。

void function(Date date, TimeZone tz)
{    
}

/* 調(diào)用時(shí)只需要傳遞需要的東西 */
function(date, selection.getTimeZone());

解耦在軟件設(shè)計(jì)中占有很重要的地位,過(guò)度耦合會(huì)嚴(yán)重影響代碼的可拓展性,增加維護(hù)成本,所以理解解耦并運(yùn)用到實(shí)際項(xiàng)目中非常有必要。

使模塊之間的耦合減少到最小。

MVC 思想簡(jiǎn)介

Model-View-Controller (MVC) 是解耦的經(jīng)典代表,它解除了數(shù)據(jù),控制器,視圖這 3 者的耦合,從而給 GUI 設(shè)計(jì)帶來(lái)非常大的方便,所以我們必須了解并會(huì)使用這套方法。

  1. 什么是 Model ?
    Model 即模型,表示要展示對(duì)象的抽象數(shù)據(jù)類型。

  2. 什么是 View ?
    View 即視圖,表示 Model 的展示方式,即 GUI 控件樣式。

  3. 什么是 Controller ?
    Controller 即控制器,用來(lái)控制 View 顯示 Model,相當(dāng)于 Model 和 View 的橋梁。

MVC 的關(guān)鍵概念:既讓模型與表示模型的 View 分離,也讓模型與管理視圖的控制器分離。這樣一來(lái),我們的模型,視圖,控制器就基本完成了解耦工作了。

簡(jiǎn)單來(lái)說(shuō):

MVC 在 GUI 上應(yīng)用的思想就是讓控制器將數(shù)據(jù)模型按照一定的規(guī)則送到視圖上去展示。其中模型,視圖,控制器分別在代碼中體現(xiàn)為 3 個(gè)獨(dú)立的 class。

這個(gè)思想也使用在最近的一個(gè)項(xiàng)目中,項(xiàng)目需要解析指定的數(shù)據(jù)包中的數(shù)據(jù)(Model),然后在自定義的控件(View)上動(dòng)態(tài)(Controller 來(lái)控制)顯示出來(lái),項(xiàng)目的結(jié)構(gòu)支撐很重要的一塊就是 MVC 了,可見(jiàn)它的重要性。

到此,相信大家對(duì)“github中解耦與MVC是什么”有了更深的了解,不妨來(lái)實(shí)際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI