您好,登錄后才能下訂單哦!
本篇內(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)目中非常有必要。
使模塊之間的耦合減少到最小。
Model-View-Controller (MVC) 是解耦的經(jīng)典代表,它解除了數(shù)據(jù),控制器,視圖這 3 者的耦合,從而給 GUI 設(shè)計(jì)帶來(lái)非常大的方便,所以我們必須了解并會(huì)使用這套方法。
什么是 Model ?
Model 即模型,表示要展示對(duì)象的抽象數(shù)據(jù)類型。
什么是 View ?
View 即視圖,表示 Model 的展示方式,即 GUI 控件樣式。
什么是 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í)!
免責(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)容。