自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

MVC之父對“模型-視圖-控制器”的最初定義

開發(fā) 后端
我創(chuàng)立的Model-View-Controller(MVC)模式作為一個(gè)直觀的解決方案,針對的是一個(gè)一般性的問題,即讓用戶能夠支配自己從多個(gè)角度看到的信息。MVC引起了的關(guān)注之多,讓人有點(diǎn)始料不及。有些教材對MVC的改造甚至到了離經(jīng)叛道的程度,企圖達(dá)到讓計(jì)算機(jī)來控制用戶的悖謬目的。

我創(chuàng)立的Model-View-Controller(MVC)模式作為一個(gè)直觀的解決方案,針對的是一個(gè)一般性的問題,即讓用戶能夠支配自己從多個(gè)角度看到的信息。MVC引起了的關(guān)注之多,讓人有點(diǎn)始料不及。有些教材對MVC的改造甚至到了離經(jīng)叛道的程度,企圖達(dá)到讓計(jì)算機(jī)來控制用戶的悖謬目的。

而MVC的根本目的是在人類頭腦中的心智模型和計(jì)算機(jī)中的數(shù)字模型之間架起一座橋梁。理想情況下,MVC的實(shí)現(xiàn)方案與用戶直接查看和操作領(lǐng)域信息的直覺吻合。假如用戶想在不同的上下文中以及/或者以不同的視角看到相同的模型要素,那MVC就有了它的用武之地。

模型

模型,表示知識(shí)。它既可能是一個(gè)對象(當(dāng)然,如果僅一個(gè)對象就沒多大意思了),也可能是由許多對象組成的結(jié)構(gòu)。

模型及其組成部分是一方,而模型創(chuàng)建者意識(shí)中要表現(xiàn)的世界則是另一方,這兩方應(yīng)該一一對應(yīng)。自然地,模型的每個(gè)節(jié)點(diǎn)都應(yīng)該明確對應(yīng)于問題的一個(gè)部分。

模型的所有節(jié)點(diǎn)都應(yīng)該把問題解決到相同的程度,把面向問題的節(jié)點(diǎn)(例如,在日程中添加約會(huì)活動(dòng))與實(shí)現(xiàn)細(xì)節(jié)(例如,用段落展示)混在一起不容易理解,是應(yīng)該避免的做法。

視圖

視圖是模型的(可見的)表現(xiàn)。視圖通常會(huì)突出模型的某些屬性,同時(shí)隱藏其他屬性。從這個(gè)意義上講,視圖就像是一個(gè)展示過濾器。

視圖依賴于模型(或模型的一部分),通過詢問問題的方式從模型中獲得用于展示的必要數(shù)據(jù)。視圖通過發(fā)送適當(dāng)?shù)南?,也可以更新模型。這些問題和消息都要按照模型的術(shù)語來傳達(dá),由此視圖必須得知道自己所要表現(xiàn)的模型,它的屬性都有什么語義。(比如說,視圖可能會(huì)詢問模型的標(biāo)識(shí)符,期待返回一個(gè)Text的實(shí)例,但它可能并不認(rèn)為模型就是Text類。)

控制器

控制器是用戶與系統(tǒng)之間的紐帶。它為用戶提供輸入,即它會(huì)將相關(guān)的視圖顯示在屏幕適當(dāng)?shù)奈恢蒙?供用戶瀏覽查看)。它為用戶提供輸出的手段,即它會(huì)向用戶展示菜單以及其他能接受命令和數(shù)據(jù)的控件??刂破鹘邮盏缴鲜龅挠脩糨敵?,將其轉(zhuǎn)換為適當(dāng)?shù)南?,然后再將這些消息傳遞給一或多個(gè)視圖。

控制器不應(yīng)該當(dāng)作視圖來用,例如,不能用控制器來畫箭頭以連接視圖的節(jié)點(diǎn)。

從另一方面講,視圖也不應(yīng)該關(guān)心用戶輸入,比如鼠標(biāo)操作或按鍵操作之類的。在任何情況下,都應(yīng)該能夠在控制器里編寫一個(gè)方法,該方法將消息發(fā)送到視圖,以便原原本本地再現(xiàn)用戶的命令。

編輯器

控制器負(fù)責(zé)連接其所有的視圖,這些視圖是該控制器的組成部分。有的視圖會(huì)提供一個(gè)特殊的控制器,叫編輯器(editor),以便用戶通過它來修改由視圖表現(xiàn)的信息。這種編輯器可以被掛接到控制器與其視圖之間的路徑上,類似于控制器的擴(kuò)展。編輯完成之后,則從路徑上將編輯器移除并丟棄。

注意,編輯器要通過相關(guān)視圖的具體表現(xiàn)來與用戶溝通,因此編輯器與視圖是緊密相關(guān)的??刂破魍ㄟ^詢問視圖來獲悉編輯器的存在,除此之外沒有其他適當(dāng)?shù)男畔碓础?/p>

原文鏈接:http://www.cn-cuckoo.com/2011/06/22/mvc-originals-2454.html

【編輯推薦】

  1. 詳解ASP.NET MVC 3新的Layout布局系統(tǒng)
  2. ASP.NET MVC中很酷的jQuery驗(yàn)證插件
  3. MVC開發(fā)人員必須擁有的五個(gè)工具
  4. 淺談ASP.NET MVC 3中如何使用Model
  5. Java MVC框架性能比較
責(zé)任編輯:陳貽新 來源: 李松峰的博客
相關(guān)推薦

2011-07-07 16:14:37

Cocoa MVC 模型

2011-08-08 10:46:15

ASP.NET MVC

2009-01-12 11:16:58

控制器控制器行為行為結(jié)果

2011-03-08 08:58:37

springmvc

2015-02-09 10:43:00

JavaScript

2009-07-23 11:33:18

2011-07-14 10:28:54

額外域控制器

2019-11-17 22:58:03

Spring MVC控制器編寫

2015-08-07 15:28:46

選取城市控制器源碼

2023-08-13 18:31:45

SDN控制器

2012-02-03 09:06:53

ASP.NET MVC

2011-07-12 09:58:42

主域控制器備份域控制器

2015-05-26 10:16:27

SDNSDN控制器

2009-07-15 13:46:26

Swing體系結(jié)構(gòu)

2011-07-18 13:55:08

2011-07-07 15:01:02

2011-07-12 09:29:10

主域控制器備份域控制器

2015-02-02 09:37:42

SDN控制器

2013-12-18 09:56:20

AngularJS測試

2024-08-05 01:29:47

MVC架構(gòu)模式分離模型
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)