强奸久久久久久久|草草浮力在线影院|手机成人无码av|亚洲精品狼友视频|国产国模精品一区|久久成人中文字幕|超碰在线视屏免费|玖玖欧洲一区二区|欧美精品无码一区|日韩无遮一区二区

首頁 > 廠商 > 知識(shí) > 架構(gòu)模式,常用的軟件架構(gòu)及設(shè)計(jì)模式net為例

架構(gòu)模式,常用的軟件架構(gòu)及設(shè)計(jì)模式net為例

來源:整理 時(shí)間:2023-08-17 12:05:00 編輯:智能門戶 手機(jī)版

本文目錄一覽

1,常用的軟件架構(gòu)及設(shè)計(jì)模式net為例

10年前常用的是三層架構(gòu),現(xiàn)在還有很多“散戶”在用這種設(shè)計(jì)模式。如今主流的有兩種,一個(gè)是MVC,這個(gè)需要下載相應(yīng)的VS插件;另一個(gè)就是.NET版的Hibernate,叫NHibernate,這個(gè)在大型的商業(yè)應(yīng)用程序中常用到,但主要用于開發(fā)Web端。
三層架構(gòu) MVC再看看別人怎么說的。
三層架構(gòu) MVC

常用的軟件架構(gòu)及設(shè)計(jì)模式net為例

2,企業(yè)架構(gòu)管理

你那什么企業(yè)我不知道,我按我們的說吧: A:董事會(huì)(監(jiān)事會(huì)) B:總經(jīng)理 C:副總經(jīng)理 D:辦公室-人事部-財(cái)政部-企業(yè)管理部-監(jiān)察審計(jì)部-安全監(jiān)督部(生產(chǎn)經(jīng)營(yíng)部) 以下是:屬下企業(yè)、合作單位 如果說的不夠清楚、我們可以單聊、我把圖發(fā)給你
一個(gè)企業(yè)的構(gòu)架管理:首先是董事長(zhǎng)下面設(shè)總經(jīng)理——下面設(shè)行政——財(cái)務(wù)——營(yíng)銷等等,如果有生產(chǎn)型企業(yè)的話在設(shè)生產(chǎn)管理的部門,就是這樣層層管理的框架。

企業(yè)架構(gòu)管理

3,試問設(shè)計(jì)模式架構(gòu)模式和架構(gòu)風(fēng)格的異同點(diǎn)

設(shè)計(jì)模式是中等尺度的結(jié)構(gòu)策略。這些中等尺度的結(jié)構(gòu)實(shí)現(xiàn)了一些大尺度組件的行為和它們之間的關(guān)系。模式的好壞不會(huì)影響到系統(tǒng)的總體布局和總體框架。設(shè)計(jì)模式定義出子系統(tǒng)或組件的微觀結(jié)構(gòu)。架構(gòu)模式是一個(gè)系統(tǒng)的高層次策略,涉及到大尺度的組件以及整體性質(zhì)和力學(xué)。架構(gòu)模式的好壞可以影響到總體布局和框架性結(jié)構(gòu)。架構(gòu)模式從子系統(tǒng)或模塊、及其之間的關(guān)系層次上描述了粗粒度的解決方案。架構(gòu)風(fēng)格是描述某一特定應(yīng)用領(lǐng)域中系統(tǒng)組織方式的慣用模式,是系統(tǒng)主要的、組織性的設(shè)計(jì)。風(fēng)格是模式的外在表現(xiàn)。三者的共同點(diǎn)是都用于設(shè)計(jì),是一套可重用的方法套路。不同點(diǎn):前二者的不同點(diǎn)在于粒度,設(shè)計(jì)模式定義出子系統(tǒng)或組件的微觀結(jié)構(gòu),結(jié)架構(gòu)模式則從子系統(tǒng)或模塊、及其之間的關(guān)系層次上描述了粗粒度的解決方案;后二者的區(qū)別在于前者著重描述系統(tǒng)的內(nèi)部組織,后者著重于描述結(jié)構(gòu)的外在表現(xiàn)。
架構(gòu)風(fēng)格描述客戶端-服務(wù)器 將系統(tǒng)分為兩個(gè)應(yīng)用,其中客戶端向服務(wù)器發(fā)送服務(wù)請(qǐng)求。 基于組件的架構(gòu) 把應(yīng)用設(shè)計(jì)分解為可重用的功能、邏輯組件,這些組件的位置相互透明,只暴露明確定義的通信接口。 分層架構(gòu) 把應(yīng)用的關(guān)注點(diǎn)分割為堆棧組(層)。 消息總線 指接收、發(fā)送消息的軟件系統(tǒng),消息基于一組已知格式,以便系統(tǒng)無需知道實(shí)際接收者就能互相通信。 n層/三層架構(gòu) 用與分層風(fēng)格差不多一樣的方式將功能劃分為獨(dú)立的部分,每個(gè)部分是一個(gè)層,處于完全獨(dú)立的計(jì)算機(jī)上。 面向?qū)ο? 該架構(gòu)風(fēng)格是將應(yīng)用或系統(tǒng)任務(wù)分割成單獨(dú)、可重用、可自給的對(duì)象,每個(gè)對(duì)象包含數(shù)據(jù),以及與對(duì)象相關(guān)的行為。 分離表現(xiàn)層 將處理用戶界面的邏輯從用戶界面(ui)視圖和用戶操作的數(shù)據(jù)中分離出來。 面向服務(wù)架構(gòu)(soa) 是指那些利用契約和消息將功能暴露為服務(wù)、消費(fèi)功能服務(wù)的應(yīng)用。 這些架構(gòu)風(fēng)格分別適用于特定領(lǐng)域:分類架構(gòu)風(fēng)格通信 soa,消息總線,管道和過濾器 部署 客戶端/服務(wù)器,三層架構(gòu),n層架構(gòu) 領(lǐng)域 領(lǐng)域模型,網(wǎng)關(guān) 交互 分離表現(xiàn)層 結(jié)構(gòu) 基于組件的架構(gòu),面向?qū)ο?,分層架?gòu)

試問設(shè)計(jì)模式架構(gòu)模式和架構(gòu)風(fēng)格的異同點(diǎn)

4,什么是設(shè)計(jì)模式和架構(gòu)模式之間的區(qū)別

設(shè)計(jì)模式是架構(gòu)的手段(之一)。  具體一點(diǎn)說,設(shè)計(jì)模式可以在某些情況幫助架構(gòu)軟件的靜態(tài)結(jié)構(gòu)?! 《軜?gòu)的范圍要大一些,更高層一些,考慮的更多的是非常重要的全局性的design decision。一般好的(靜態(tài))架構(gòu)可以盡量使變化發(fā)生在局部(模塊內(nèi))而不影響整個(gè)系統(tǒng)。架構(gòu)上的變化往往成本會(huì)非常高?! 《以O(shè)計(jì)模式只有一些是適用于架構(gòu)的,還有一些只是用于具體的類設(shè)計(jì)的,剩下的一些則只是克服編程語言的限制而已?! 〈騻€(gè)不恰當(dāng)?shù)谋确剑悬c(diǎn)像擋拆和戰(zhàn)術(shù)的關(guān)系?! ≡诤线m的情況下用好擋拆可以很好的執(zhí)行戰(zhàn)術(shù),  但戰(zhàn)術(shù)不只有擋拆,  而且有的戰(zhàn)術(shù)不需要擋拆,  最重要的是盲目的用擋拆有時(shí)候反而會(huì)起反作用?! ∶鎸?duì)客戶嗶嗶時(shí),我們用需求分析架構(gòu)。  面對(duì)整個(gè)軟件或系統(tǒng)時(shí),我們談?wù)摷軜?gòu)分析。  面對(duì)軟件模塊設(shè)計(jì)時(shí),我們使用設(shè)計(jì)模式?! ∶鎸?duì)模塊實(shí)現(xiàn)時(shí),我們應(yīng)用特定編程語言的特性?! ≤浖軜?gòu) :一般場(chǎng)景下?lián)碛性O(shè)計(jì)的選擇權(quán)  設(shè)計(jì)模式 :選擇后特定場(chǎng)景下的最佳實(shí)踐  軟件架構(gòu)是軟件的一種搭建形式,往往規(guī)定了軟件的模塊組成,通信接口(含通信數(shù)據(jù)結(jié)構(gòu)),組件模型,集成框架等等。往往規(guī)定了具體的細(xì)節(jié)。  設(shè)計(jì)模式是一種軟件的實(shí)現(xiàn)方法,是一種抽象的方法論,是為了更好的實(shí)現(xiàn)軟件而歸納出來的有效方法?! ?shí)現(xiàn)一種軟件架構(gòu),不同組成部分可能用到不同的設(shè)計(jì)模式,某一部分也可能可以采用不同的設(shè)計(jì)模式實(shí)現(xiàn)。
云計(jì)算——至少作為虛擬化的一種延伸,影響范圍已經(jīng)越來越大。但是,目前云計(jì)算還不能支持復(fù)雜的企業(yè)環(huán)境。因此云計(jì)算架構(gòu)呼之欲出,經(jīng)驗(yàn)表明,在云計(jì)算走向成熟之前,我們更應(yīng)該關(guān)注系統(tǒng)云計(jì)算架構(gòu)的細(xì)節(jié)?;趯?duì)現(xiàn)有的一些云計(jì)算產(chǎn)品的分析和個(gè)人一些經(jīng)驗(yàn),總結(jié)出一套云計(jì)算架構(gòu),云計(jì)算架構(gòu)主要可分為四層。 顯示層 多數(shù)數(shù)據(jù)中心云計(jì)算架構(gòu)的這層主要是用于以友好的方式展現(xiàn)用戶所需的內(nèi)容和服務(wù)體驗(yàn),并會(huì)利用到下面中間件層提供的多種服務(wù),主要有五種技術(shù): html:標(biāo)準(zhǔn)的web頁面技術(shù),現(xiàn)在主要以html4為主,但是將要推出的html5會(huì)在很多方面推動(dòng)web頁面的發(fā)展,比如視頻[1]和本地存儲(chǔ)等方面。 javascript:一種用于web頁面的動(dòng)態(tài)語言,通過javascript,能夠極大地豐富web頁面的功能,并且用以javascript為基礎(chǔ)的ajax創(chuàng)建更具交互性的動(dòng)態(tài)頁面。 css:主要用于控制web頁面的外觀,而且能使頁面的內(nèi)容與其表現(xiàn)形式之間進(jìn)行優(yōu)雅地分離。 flash[2]:業(yè)界最常用的ria(rich internet applications)技術(shù),能夠在現(xiàn)階段提供html等技術(shù)所無法提供的基于web的富應(yīng)用,而且在用戶體驗(yàn)[3]方面,非常不錯(cuò)。 silverlight:來自業(yè)界巨擎微軟[4]的ria技術(shù),雖然其現(xiàn)在市場(chǎng)占有率稍遜于flash,但由于其可以使用c#[5]來進(jìn)行編程,所以對(duì)開發(fā)者非常友好。

5,什么是架構(gòu)

架構(gòu)一般指軟件架構(gòu)(software architecture)是一系列相關(guān)的抽象模式,用于指導(dǎo)大型軟件系統(tǒng)各個(gè)方面的設(shè)計(jì)。 軟件架構(gòu)是一個(gè)系統(tǒng)的草圖。軟件架構(gòu)描述的對(duì)象是直接構(gòu)成系統(tǒng)的抽象組件。各個(gè)組件之間的連接則明確和相對(duì)細(xì)致地描述組件之間的通訊。在實(shí)現(xiàn)階段,這些抽象組件被細(xì)化為實(shí)際的組件,比如具體某個(gè)類或者對(duì)象。在面向?qū)ο箢I(lǐng)域中,組件之間的連接通常用接口(計(jì)算機(jī)科學(xué))來實(shí)現(xiàn)。 軟件體系結(jié)構(gòu)是構(gòu)建計(jì)算機(jī)軟件實(shí)踐的基礎(chǔ)。與建筑師設(shè)定建筑項(xiàng)目的設(shè)計(jì)原則和目標(biāo),作為繪圖員畫圖的基礎(chǔ)一樣,一個(gè)軟件架構(gòu)師或者系統(tǒng)架構(gòu)師陳述軟件構(gòu)架以作為滿足不同客戶需求的實(shí)際系統(tǒng)設(shè)計(jì)方案的基礎(chǔ)。軟件構(gòu)架是一個(gè)容易理解的概念,多數(shù)工程師(尤其是經(jīng)驗(yàn)不多的工程師)會(huì)從直覺上來認(rèn)識(shí)它,但要給出精確的定義很困難。特別是,很難明確地區(qū)分設(shè)計(jì)和構(gòu)架:構(gòu)架屬于設(shè)計(jì)的一方面,它集中于某些具體的特征。在“軟件構(gòu)架簡(jiǎn)介”中,David Garlan 和 Mary Shaw 認(rèn)為軟件構(gòu)架是有關(guān)如下問題的設(shè)計(jì)層次:“在計(jì)算的算法和數(shù)據(jù)結(jié)構(gòu)之外,設(shè)計(jì)并確定系統(tǒng)整體結(jié)構(gòu)成為了新的問題。結(jié)構(gòu)問題包括總體組織結(jié)構(gòu)和全局控制結(jié)構(gòu);通信、同步和數(shù)據(jù)訪問的協(xié)議;設(shè)計(jì)元素的功能分配;物理分布;設(shè)計(jì)元素的組成;定標(biāo)與性能;備選設(shè)計(jì)的選擇。”【GS93】但構(gòu)架不僅是結(jié)構(gòu);IEEE Working Group on Architecture 把其定義為“系統(tǒng)在其環(huán)境中的最高層概念”【IEEE98】。構(gòu)架還包括“符合”系統(tǒng)完整性、經(jīng)濟(jì)約束條件、審美需求和樣式。它并不僅注重對(duì)內(nèi)部的考慮,而且還在系統(tǒng)的用戶環(huán)境和開發(fā)環(huán)境中對(duì)系統(tǒng)進(jìn)行整體考慮,即同時(shí)注重對(duì)外部的考慮。在 Rational Unified Process 中,軟件系統(tǒng)的構(gòu)架(在某一給定點(diǎn))是指系統(tǒng)重要構(gòu)件的組織或結(jié)構(gòu),這些重要構(gòu)件通過接口與不斷減小的構(gòu)件與接口所組成的構(gòu)件進(jìn)行交互。從和目的、主題、材料和結(jié)構(gòu)的聯(lián)系上來說,軟件架構(gòu)可以和建筑物的架構(gòu)相比擬。一個(gè)軟件架構(gòu)師需要有廣泛的軟件理論知識(shí)和相應(yīng)的經(jīng)驗(yàn)來實(shí)施和管理軟件產(chǎn)品的高級(jí)設(shè)計(jì)。軟件架構(gòu)師定義和設(shè)計(jì)軟件的模塊化,模塊之間的交互,用戶界面風(fēng)格,對(duì)外接口方法,創(chuàng)新的設(shè)計(jì)特性,以及高層事物的對(duì)象操作、邏輯和流程。一般而言,軟件系統(tǒng)的架構(gòu)(Architecture)有兩個(gè)要素:·它是一個(gè)軟件系統(tǒng)從整體到部分的最高層次的劃分。一個(gè)系統(tǒng)通常是由元件組成的,而這些元件如何形成、相互之間如何發(fā)生作用,則是關(guān)于這個(gè)系統(tǒng)本身結(jié)構(gòu)的重要信息。詳細(xì)地說,就是要包括架構(gòu)元件(Architecture Component)、聯(lián)結(jié)器(Connector)、任務(wù)流(Task-flow)。所謂架構(gòu)元素,也就是組成系統(tǒng)的核心"磚瓦",而聯(lián)結(jié)器則描述這些元件之間通訊的路徑、通訊的機(jī)制、通訊的預(yù)期結(jié)果,任務(wù)流則描述系統(tǒng)如何使用這些元件和聯(lián)結(jié)器完成某一項(xiàng)需求?!そㄔ煲粋€(gè)系統(tǒng)所作出的最高層次的、以后難以更改的,商業(yè)的和技術(shù)的決定。在建造一個(gè)系統(tǒng)之前會(huì)有很多的重要決定需要事先作出,而一旦系統(tǒng)開始進(jìn)行詳細(xì)設(shè)計(jì)甚至建造,這些決定就很難更改甚至無法更改。顯然,這樣的決定必定是有關(guān)系統(tǒng)設(shè)計(jì)成敗的最重要決定,必須經(jīng)過非常慎重的研究和考察。詳情參考http://baike.baidu.com/subview/190551/12477396.htm#viewPageContent
就是指物體的框架結(jié)構(gòu)

6,三層架構(gòu)和mvc模式有什么關(guān)系

三層架構(gòu)和MVC是有明顯區(qū)別的,MVC應(yīng)該是展現(xiàn)模式(三個(gè)加起來以后才是三層架構(gòu)中的UI層) 三層架構(gòu)(3-tier application) 通常意義上的三層架構(gòu)就是將整個(gè)業(yè)務(wù)應(yīng)用劃分為:表現(xiàn)層(UI)、業(yè)務(wù)邏輯層(BLL)、數(shù)據(jù)訪問層(DAL)。區(qū)分層次的目的即為了“高內(nèi)聚,低耦合”的思想。 1、表現(xiàn)層(UI):通俗講就是展現(xiàn)給用戶的界面,即用戶在使用一個(gè)系統(tǒng)的時(shí)候他的所見所得。 2、業(yè)務(wù)邏輯層(BLL):針對(duì)具體問題的操作,也可以說是對(duì)數(shù)據(jù)層的操作,對(duì)數(shù)據(jù)業(yè)務(wù)邏輯處理。 3、數(shù)據(jù)訪問層(DAL):該層所做事務(wù)直接操作數(shù)據(jù)庫,針對(duì)數(shù)據(jù)的增添、刪除、修改、更新、查找等。 MVC是 Model-View-Controller,嚴(yán)格說這三個(gè)加起來以后才是三層架構(gòu)中的UI層,也就是說,MVC把三層架構(gòu)中的UI層再度進(jìn)行了分化,分成了控制器、視圖、實(shí)體三個(gè)部分,控制器完成頁面邏輯,通過實(shí)體來與界面層完成通話;而C層直接與三層中的BLL進(jìn)行對(duì)話。mvc可以是三層中的一個(gè)表現(xiàn)層框架,屬于表現(xiàn)層。三層和mvc可以共存。 三層是基于業(yè)務(wù)邏輯來分的,而mvc是基于頁面來分的。 MVC主要用于表現(xiàn)層,3層主要用于體系架構(gòu),3層一般是表現(xiàn)層、中間層、數(shù)據(jù)層,其中表現(xiàn)層又可以分成M、V、C,(Model View Controller)模型-視圖-控制器 曾把MVC模式和Web開發(fā)中的三層結(jié)構(gòu)的概念混為一談,直到今天才發(fā)現(xiàn)一直是我的理解錯(cuò)誤。MVC模式是GUI界面開發(fā)的指導(dǎo)模式,基于表現(xiàn)層分離的思想把程序分為三大部分:Model-View-Controller,呈三角形結(jié)構(gòu)。Model是指數(shù)據(jù)以及應(yīng)用程序邏輯,View是指Model的視圖,也就是用戶界面。這兩者都很好理解,關(guān)鍵點(diǎn)在于Controller的角色以及三者之間的關(guān)系。在MVC模式中,Controller和View同屬于表現(xiàn)層,通常成對(duì)出現(xiàn)。Controller被設(shè)計(jì)為處理用戶交互的邏輯。一個(gè)通常的誤解是認(rèn)為Controller負(fù)責(zé)處理View和Model的交互,而實(shí)際上View和Model之間是可以直接通信的。由于用戶的交互通常會(huì)涉及到Model的改變和View的更新,所以這些可以認(rèn)為是Controller的副作用。MVC是表現(xiàn)層的架構(gòu),MVC的Model實(shí)際上是ViewModel,即供View進(jìn)行展示的數(shù)據(jù)。 ViewModel不包含業(yè)務(wù)邏輯,也不包含數(shù)據(jù)讀取。 而在N層架構(gòu)中,一般還會(huì)有一個(gè)Model層,用來與數(shù)據(jù)庫的表相對(duì)應(yīng),也就是所謂ORM中的O。這個(gè)Model可能是POCO,也可能是包含一些驗(yàn)證邏輯的實(shí)體類,一般也不包含數(shù)據(jù)讀取。進(jìn)行數(shù)據(jù)讀取的是數(shù)據(jù)訪問層。而作為UI層的MVC一般不直接操作數(shù)據(jù)訪問層,中間會(huì)有一個(gè)業(yè)務(wù)邏輯層封裝業(yè)務(wù)邏輯、調(diào)用數(shù)據(jù)訪問層。UI層(Controller)通過業(yè)務(wù)邏輯層來得到數(shù)據(jù)(Model),并進(jìn)行封裝(ViewModel),然后選擇相應(yīng)的View。MVC本來是存在于Desktop程序中的,M是指數(shù)據(jù)模型,V是指用戶界面,C則是控制器。使用MVC的目的是將M和V的實(shí)現(xiàn)代碼分離,從而使同一個(gè)程序可以使用不同的表現(xiàn)形式。比如一批統(tǒng)計(jì)數(shù)據(jù)你可以分別用柱狀圖、餅圖來表示。C存在的目的則是確保M和V的同步,一旦M改變,V應(yīng)該同步更新。 MVC如何工作 MVC是一個(gè)設(shè)計(jì)模式,它強(qiáng)制性的使應(yīng)用程序的輸入、處理和輸出分開。使用MVC應(yīng)用程序被分成三個(gè)核心部件:模型、視圖、控制器。它們各自處理自己的任務(wù)。 視圖V 視圖是用戶看到并與之交互的界面。對(duì)老式的Web應(yīng)用程序來說,視圖就是由HTML元素組成的界面,在新式的Web應(yīng)用程序中,HTML依舊在視圖中扮演著重要的角色,但一些新的技術(shù)已層出不窮,它們包括Macromedia Flash和象XHTML,XML/XSL,WML等一些標(biāo)識(shí)語言和Web services. 如何處理應(yīng)用程序的界面變得越來越有挑戰(zhàn)性。MVC一個(gè)大的好處是它能為你的應(yīng)用程序處理很多不同的視圖。在視圖中其實(shí)沒有真正的處理發(fā)生,不管這些數(shù)據(jù)是聯(lián)機(jī)存儲(chǔ)的還是一個(gè)雇員列表,作為視圖來講,它只是作為一種輸出數(shù)據(jù)并允許用戶操縱的方式。 模型M 模型表示企業(yè)數(shù)據(jù)和業(yè)務(wù)規(guī)則。在MVC的三個(gè)部件中,模型擁有最多的處理任務(wù)。被模型返回的數(shù)據(jù)是中立的,就是說模型與數(shù)據(jù)格式無關(guān),這樣一個(gè)模型能為多個(gè)視圖提供數(shù)據(jù)。由于應(yīng)用于模型的代碼只需寫一次就可以被多個(gè)視圖重用,所以減少了代碼的重復(fù)性。 控制器C 控制器接受用戶的輸入并調(diào)用模型和視圖去完成用戶的需求。所以當(dāng)單擊Web頁面中的超鏈接和發(fā)送HTML表單時(shí),控制器本身不輸出任何東西和做任何處理。它只是接收請(qǐng)求并決定調(diào)用哪個(gè)模型構(gòu)件去處理請(qǐng)求,然后再確定用哪個(gè)視圖來顯示返回的數(shù)據(jù)。模型Model 模型是應(yīng)用程序的主體部分。模型表示業(yè)務(wù)數(shù)據(jù),或者業(yè)務(wù)邏輯. 實(shí)現(xiàn)具體的業(yè)務(wù)邏輯、狀態(tài)管理的功能。 視圖View 視圖是應(yīng)用程序中用戶界面相關(guān)的部分,是用戶看到并與之交互的界面。 就是與用戶實(shí)現(xiàn)交互的頁面,通常實(shí)現(xiàn)數(shù)據(jù)的輸入和輸出功能。 控制器controller 控制器工作就是根據(jù)用戶的輸入,控制用戶界面數(shù)據(jù)顯示和更新model對(duì)象狀態(tài)。起到控制整個(gè)業(yè)務(wù)流程的作用,實(shí)現(xiàn)View層跟Model層的協(xié)同工作。3層架構(gòu)指:表現(xiàn)層(顯示層) 業(yè)務(wù)邏輯層 數(shù)據(jù)訪問層(持久化)如果大家非要“生搬硬套”把它和MVC扯上關(guān)系話那我就只能在這里"強(qiáng)扭這個(gè)瓜"了即: V 3層架構(gòu)中"表現(xiàn)層"aspx頁面對(duì)應(yīng)MVC中View(繼承的類不一樣) C 三層架構(gòu)中"表現(xiàn)層"的aspx.cs頁面(類)對(duì)應(yīng)MVC中的Controller,理解這一點(diǎn)并不難,大家想一想我們以前寫過的 Redirect,當(dāng)然它本身就是跳轉(zhuǎn)了一些鏈接頁面,而MVC中的Controller要做的更爽,它控制并顯示輸出了一個(gè)視圖。即然所起到的作用都是對(duì)業(yè)務(wù)流程和顯示信息的控制,只不過是實(shí)現(xiàn)手段不同而已。 M 3層架構(gòu)中業(yè)務(wù)邏輯層和數(shù)據(jù)訪問層對(duì)應(yīng)MVC中Model(必定View和Controller已找到“婆家”剩下Model只能是業(yè)務(wù)邏輯層和數(shù)據(jù)訪問層了)為什么要使用 MVC 大部分Web應(yīng)用程序都是用像ASP,PHP,或者CFML這樣的過程化(自PHP5.0版本后已全面支持面向?qū)ο竽P?語言來創(chuàng)建的。它們將像數(shù)據(jù)庫查詢語句這樣的數(shù)據(jù)層代碼和像HTML這樣的表示層代碼混在一起。經(jīng)驗(yàn)比較豐富的開發(fā)者會(huì)將數(shù)據(jù)從表示層分離開來,但這通常不是很容易做到的,它需要精心的計(jì)劃和不斷的嘗試。MVC從根本上強(qiáng)制性的將它們分開。盡管構(gòu)造MVC應(yīng)用程序需要一些額外的工作,但是它給我們帶來的好處是無庸質(zhì)疑的。首先,最重要的一點(diǎn)是多個(gè)視圖能共享一個(gè)模型,現(xiàn)在需要用越來越多的方式來訪問你的應(yīng)用程序。對(duì)此,其中一個(gè)解決之道是使用MVC,無論你的用戶想要Flash界面或是 WAP 界面;用一個(gè)模型就能處理它們。由于你已經(jīng)將數(shù)據(jù)和業(yè)務(wù)規(guī)則從表示層分開,所以你可以最大化的重用你的代碼了。 由于模型返回的數(shù)據(jù)沒有進(jìn)行格式化,所以同樣的構(gòu)件能被不同界面使用。例如,很多數(shù)據(jù)可能用HTML來表示,但是它們也有可能要用Adobe Flash和WAP來表示。模型也有狀態(tài)管理和數(shù)據(jù)持久性處理的功能,例如,基于會(huì)話的購物車和電子商務(wù)過程也能被Flash網(wǎng)站或者無線聯(lián)網(wǎng)的應(yīng)用程序所重用。因?yàn)槟P褪亲园?,并且與控制器和視圖相分離,所以很容易改變你的應(yīng)用程序的數(shù)據(jù)層和業(yè)務(wù)規(guī)則。如果你想把你的數(shù)據(jù)庫從MySQL移植到Oracle,或者改變你的基于RDBMS數(shù)據(jù)源到LDAP,只需改變你的模型即可。一旦你正確的實(shí)現(xiàn)了模型,不管你的數(shù)據(jù)來自數(shù)據(jù)庫或是LDAP服務(wù)器,視圖將會(huì)正確的顯示它們。由于運(yùn)用MVC的應(yīng)用程序的三個(gè)部件是相互獨(dú)立,改變其中一個(gè)不會(huì)影響其它兩個(gè),所以依據(jù)這種設(shè)計(jì)思想你能構(gòu)造良好的松耦合的構(gòu)件。對(duì)我來說,控制器也提供了一個(gè)好處,就是可以使用控制器來聯(lián)接不同的模型和視圖去完成用戶的需求,這樣控制器可以為構(gòu)造應(yīng)用程序提供強(qiáng)有力的手段。給定一些可重用的模型和視圖,控制器可以根據(jù)用戶的需求選擇模型進(jìn)行處理,然后選擇視圖將處理結(jié)果顯示給用戶。拿一個(gè)簡(jiǎn)單的登陸模塊說,需求是你輸入一個(gè)用戶名、密碼,如果輸入的跟預(yù)先定義好的一樣,那么就進(jìn)入到正確頁面,如果不一樣,就提示個(gè)錯(cuò)誤信息“你Y別在這兒蒙我,輸入的不對(duì)!”。 V 這個(gè)小小的模塊中,起始的輸入用戶名密碼的頁面跟經(jīng)過校驗(yàn)后顯示的頁面就相當(dāng)于View C 而這里還需要一個(gè)controller頁面,就是用于接收輸入進(jìn)來的用戶名密碼,還有經(jīng)過校驗(yàn)后返回的一個(gè)flg(此flg就是用于判斷你輸入的是否正確,而跳轉(zhuǎn)到相應(yīng)的頁面的) M 最后還缺一個(gè)Model,那么就是你那個(gè)用于校驗(yàn)的類了,他就是處理你輸入的是否跟預(yù)先訂好的一樣不一樣的,之后返回一個(gè)flg。 這樣就完全實(shí)現(xiàn)了邏輯跟頁面的分離,我頁面不管你咋整,反正我就一個(gè)顯示,而controller呢也不管你Model咋判斷對(duì)不對(duì),反正我給你了用戶名跟密碼,你就得給我整回來一個(gè)flg來,而Medol呢,則是反正你敢給我個(gè)用戶名跟密碼,我就給你整過去個(gè)flgm 提供數(shù)據(jù),數(shù)據(jù)之間的關(guān)系,轉(zhuǎn)化等。并可以通知視圖和控制器自己哪些地方發(fā)生了變化。 v 提供顯示,能根據(jù)m的改變來更新自己 c 比如視圖做了點(diǎn)擊一個(gè)按鈕,會(huì)先發(fā)給這個(gè)視圖的控制器,然后這個(gè)控制器來決定做什么操作(讓模型更新數(shù)據(jù),控制視圖改變) mvc是一個(gè)復(fù)合模式 mv,mc都是觀察者模式 m內(nèi)部的組件組合模式 vc之間是策略模式(可以隨時(shí)更換不同的控制器)MVC模式是上世紀(jì)70年代提出,最初用于Smalltalk平臺(tái)上的。 MVC是表現(xiàn)模式,是用來向用戶展現(xiàn)的許多組建的一個(gè)模式(UI/Presentation Patten) MVC有三種角色: Model:用來儲(chǔ)存數(shù)據(jù)的組件(與領(lǐng)域模型概念不同,兩者會(huì)相互交叉) View:從Model中獲取數(shù)據(jù)進(jìn)行內(nèi)容展示的組件。同樣的Model在不同的View下可展示不同的效果。獲取Model的狀態(tài),而不對(duì)其進(jìn)行操作。 Controller:接受并處理用戶指令(操作Model(業(yè)務(wù))),選擇一個(gè)View進(jìn)行操作。MVC概述:協(xié)作 存在單向引用,例如Model不知道View和Controller的存在。View不知道Controller的存在。這就隔離了表現(xiàn)和數(shù)據(jù)。View和controller是單向引用。而實(shí)際中View和Controller也是有數(shù)據(jù)交互的。MVC的重要特點(diǎn)是分離。兩種分離: View和數(shù)據(jù)(Model)的分離 使用不同的View對(duì)相同的數(shù)據(jù)進(jìn)行展示;分離可視和不可視的組件,能夠?qū)odel進(jìn)行獨(dú)立測(cè)試。因?yàn)榉蛛x了可視組件減少了外部依賴?yán)跍y(cè)試。(數(shù)據(jù)庫也是一種外部組件) View和表現(xiàn)邏輯(Controller)的分離 Controller是一個(gè)表現(xiàn)邏輯的組件,并非一個(gè)業(yè)務(wù)邏輯組件。MVC可以作為表現(xiàn)模式也可以作為建構(gòu)模式,意味這Controller也可以是業(yè)務(wù)邏輯。分離邏輯和具體展示,能夠?qū)壿嬤M(jìn)行獨(dú)立測(cè)試。MVC和三層架構(gòu) MVC與三層架構(gòu)類似么? View-UI Layer | Controller-Bussiness Layer | Model-Data Access Layer 其實(shí)這樣是錯(cuò)誤的 MVC是表現(xiàn)模式(Presentation Pattern) 三層架構(gòu)是典型的架構(gòu)模式(Architecture Pattern) 三層架構(gòu)的分層模式是典型的上下關(guān)系,上層依賴于下層。但MVC作為表現(xiàn)模式是不存在上下關(guān)系的,而是相互協(xié)作關(guān)系。即使將MVC當(dāng)作架構(gòu)模式,也不是分層模式。MVC和三層架構(gòu)基本沒有可比性,是應(yīng)用于不同領(lǐng)域的技術(shù)。MVC模式與三層架構(gòu):ui (view)←(contorller)***********************bll (model) *********************** dal (model)
文章TAG:架構(gòu)架構(gòu)模式模式常用架構(gòu)模式

最近更新

  • address函數(shù),excel中使用什么函數(shù)可以返回指定單元格的地址address函數(shù),excel中使用什么函數(shù)可以返回指定單元格的地址

    excel中使用什么函數(shù)可以返回指定單元格的地址2,excel2003中address函數(shù)有什么用3,exceladdress函數(shù)有什么具體作用4,Excel的ADDRESS函數(shù)是什么5,excel中address的實(shí)際應(yīng)用我已經(jīng)明白原理.....

    知識(shí) 日期:2023-08-17

  • 人機(jī)交互設(shè)計(jì),交互設(shè)計(jì)前途人機(jī)交互設(shè)計(jì),交互設(shè)計(jì)前途

    交互設(shè)計(jì)前途2,什么是人機(jī)交互它有什么特點(diǎn)3,學(xué)UI設(shè)計(jì)這個(gè)專業(yè)怎樣4,什么是交互設(shè)計(jì)5,UI設(shè)計(jì)怎么樣6,ui設(shè)計(jì)要學(xué)哪些1,交互設(shè)計(jì)前途前途無量,隨著網(wǎng)絡(luò)的迅猛普及,交互式將有廣闊的空間。交互設(shè).....

    知識(shí) 日期:2023-08-17

  • cpu啥意思,CPU是什么意思cpu啥意思,CPU是什么意思

    CPU是什么意思2,CPU指的是什么3,CPU代表什么4,cpu是什么意思5,cpu微處理器的概念6,CPU是什么意思啊7,電腦里的CPU是什么8,cpu是什么意思9,電腦CPU是什么東西10,什么是CPU1,CPU是什么意思中央處理.....

    知識(shí) 日期:2023-08-17

  • 機(jī)械硬盤和固態(tài)硬盤哪個(gè)好,機(jī)械硬盤和固態(tài)硬盤哪個(gè)好機(jī)械硬盤和固態(tài)硬盤哪個(gè)好,機(jī)械硬盤和固態(tài)硬盤哪個(gè)好

    機(jī)械硬盤和固態(tài)硬盤哪個(gè)好2,機(jī)械硬盤和固態(tài)硬盤比較哪個(gè)好3,固態(tài)硬盤和機(jī)械硬盤選哪個(gè)4,機(jī)械硬盤和固態(tài)硬盤哪個(gè)好5,固態(tài)硬盤和機(jī)械硬盤哪個(gè)好6,機(jī)械硬盤和固態(tài)硬盤1,機(jī)械硬盤和固態(tài)硬盤哪個(gè).....

    知識(shí) 日期:2023-08-17

  • 查看內(nèi)存,怎樣知道電腦內(nèi)存查看內(nèi)存,怎樣知道電腦內(nèi)存

    怎樣知道電腦內(nèi)存2,從哪可以查到電腦的內(nèi)存3,內(nèi)存咋看4,如何查看電腦內(nèi)存5,求解怎么查看手機(jī)內(nèi)存6,怎么查看自己電腦主機(jī)內(nèi)存條的信息還有幾代1,怎樣知道電腦內(nèi)存右擊我的電腦,選擇屬性。2,從.....

    知識(shí) 日期:2023-08-17

  • 藍(lán)牙開關(guān),藍(lán)牙開關(guān)在哪里藍(lán)牙開關(guān),藍(lán)牙開關(guān)在哪里

    藍(lán)牙開關(guān)在哪里2,藍(lán)牙在哪里開啟3,藍(lán)牙耳機(jī)開關(guān)在哪4,電腦藍(lán)牙在哪里打開5,藍(lán)牙開關(guān)不見了6,聯(lián)想筆記本藍(lán)牙開關(guān)在哪里1,藍(lán)牙開關(guān)在哪里手機(jī)的嗎一般都在設(shè)置那里得看你是哪個(gè)型號(hào)的啊。2,藍(lán).....

    知識(shí) 日期:2023-08-17

  • ietf,IESGInternet SocietyIANAIETF是什么ietf,IESGInternet SocietyIANAIETF是什么

    IESGInternetSocietyIANAIETF是什么2,IETF是什么意思及反義詞3,IETF與IRTF各自的職能是什么4,什么是IETF什么是RFC他們是什么關(guān)系5,IETF制定了哪些協(xié)議6,IETF是什么啊1,IESGInternetSocietyI.....

    知識(shí) 日期:2023-08-17

  • evalue,estimate和evalue和value的區(qū)別evalue,estimate和evalue和value的區(qū)別

    estimate和evalue和value的區(qū)別2,evalue值越大越好還是越小越好3,estimate和evalue和value的區(qū)別1,estimate和evalue和value的區(qū)別estimate是估計(jì)推測(cè)的意思,推測(cè)的對(duì)象一般是某個(gè)事物,推測(cè).....

    知識(shí) 日期:2023-08-17