c語言mvc
⑴ MVC是什麼
不是,struts只是實現MVC的一種代表性的框架。
MVC概述:
MVC是Model-View-Controller的簡稱,即模型-視圖-控制器。MVC是Xerox PARC在20世紀80年代為編程語言Smalltalk-80發明的一種軟體設計模式,至今已被廣泛使用,最近幾年被推薦為Sun公司J2EE平台的設計模式,受到越來越多的Web開發者的歡迎。
MVC設計模式:
MVC是一種設計模式,它強制性地把應用程序的輸入、處理和輸出分開。MVC把應用程序分成三個核心模塊:模型、視圖和控制器,它們分別擔負不同的任務。
MVC處理過程:
首先控制器接受用戶的請求,並決定應該調用哪個模型來進行處理;然後模型根據用戶請求進行相應的業務邏輯處理,並返回數據;最後控制器調用相應的視圖來格式化模型返回的數據,並通過視圖呈現給用戶。
MVC的優缺點:
1. MVC的優點
1) 可靠性(Reliability):將表示層和處理層完全分開,可以在不重新編譯model和controller的情況下修改view層。
2) 復用性和適應性(reuse & adaptability):MVC使你可以使用多種view去訪問相同的model。
3) 快速開發(Rapid deployment):因為MVC清晰的將表示層和處理層分開,所以使得不同的程序員可以各司其則,增加開發速度。
4) 可維護性(Maintainability):清晰的分層同樣使得代碼清晰、程序的可維護性提高。
2. MVC的缺點
MVC的設計實現並不十分容易,理解起來比較容易,但對開發人員的要求比較高。MVC只是一種基本的設計思想,還需要詳細的設計規劃。模型和視圖的嚴格分離可能使得調試困難一些,但比較容易發現錯誤。實驗表明,MVC由於將應用分為三層,意味著代碼文件增多,因此,對於文件的管理需要費點心思。
Struts概述
Struts實質上就是在JSP MODEL2的基礎上實現的一個MVC框架。在Struts框架中,模型由實現業務邏輯的javaBean或EJB組建構成,控制器由ActionServlet和Action來實現,視圖由一組JSP文件構成。
對於採用Struts框架的Web應用,在Web應用啟動時就會載入並初始化ActionServlet,ActionServlet從struts-config.xml文件中讀取配置信息,把它們存放到各種配置對象中,例如Action的映射信息存放在ActionMapping對象中。
當ActionServlet接收到一個客戶請求時,將執行如下流程。
1) 檢索和用戶請求匹配的ActionMapping實例,如果不存在,就返回用戶請求路徑無效的信息。
2) 如果ActionForm實例不存在,就創建一個ActionForm對象,把客戶提交的表單數據保存到ActionForm對象中。
3) 根據配置信息決定是否需要表單驗證。如果需要驗證,就調用ActionForm的validate()方法。
4) 如果ActionForm的validate()方法返回null或返回一個不包含ActionMessage的ActionErrors對象,就表示表單驗證成功。如果ActionForm的validate()方法返回一個包含一個或多個ActionMessage的ActionErrors對象,就表示表單驗證失敗,此時ActionServlet將直接把請求轉發給包含用戶提交表單的JSP組件,在這種情況下,不會再創建Action對象並調用Action的execute()方法。
5) ActionServlet根據ActionMapping實例包含的映射信息決定將請求轉發給哪個Action。如果相應的Action實例不存在,就先創建這個實例,然後調用Action的execute()方法。
6) Action的execute()方法返回一個ActionForward對象,ActionServlet在把客戶請求轉發給ActionForward對象指向的JSP組件。
7) ActionForward對象指向的JSP組件生成動態網頁,返回給客戶。
⑵ 什麼是MVC
MVC(模型Model-視圖View-控制器Controller)是一種設計模式,
MVC。V即View.是視圖的意思。C即Controller.是控制器的意思。而M即Model,是模型的意思。這三個里.最不容易理解的應該是Model.就是什麼是Model,而為什麼叫Model。我先不說為什麼叫Model,先解釋Controller。
Controller是控制器的意思,所謂控制器,就是將用戶請求轉發給模型層,經過處理後把結果返回到界面層展現的一個中間層,那麼Controller到底管什麼工作呢?先不說.先來看下在Java
Web中這三個層一般的定義,一般在Java
Web里,JSP充當V,Servlet充當C,JavaBean充當M,這里的Servlet管什麼工作呢?接受輸入,轉到Model層去處理,處理結果保存後轉發到JSP,然後展現數據。所以它的功能就是控制器的基本功能,它就管轉發,在V和M之間轉來轉去。
再來說說M,即Model,在Java
Web里說的是JavaBean,我認識的很多人都把JavaBean誤認為是實體類,其實JavaBean有比實體類更豐富的定義,在JavaBean中除了其屬性和欄位,還可以有行為及其事件,JavaBean可以理解為普通Java對象。Java普通對象,就是符合Java規范的所有對象,這和實體類完全是兩回事。所以,我認為在MVC中。業務邏輯和數據訪問應該放在Model層,也就是V負責展示數據,Controler除了轉發不做業務邏輯。真正的邏輯事務,數據訪問,甚至演算法都放到Model去。
MVC沒有把業務的邏輯訪問看成兩個層,這是採用三層架構或MVC搭建程序最主要的區別。當然了。在三層中也提到了Model,但是三層架構中Model的概念與MVC中Model的概念是不一樣的,「三層」中典型的Model層是已實體類構成的,而MVC里,則是由業務邏輯與訪問數據組成的
⑶ 淺談開發中的MVVM模式及與MVP和MVC的區別
淺談開發中的MVVM模式及與MVP和MVC的區別
在使用強制轉換時應注意以下問題:
1) 類型說明符和表達式都必須加括弧(單個變數可以不加括弧),如把(int)(x+y)寫成(int)x+y則成了把x轉換成int型之後再與y相加了。
2) 無論是強制轉換或是自動轉換,都只是為了本次運算的需要而對變數的數據長度進行的臨時性轉換,而不改變數據說明時對該變數定義的類型。
【例3.13】
main(){
float f=5.75;
printf("(int)f=%d,f=%f\n",(int)f,f);
}
本例表明,f雖強制轉為int型,但只在運算中起作用,是臨時的,而f本身的類型並不改變。因此,(int)f的值為 5(刪去了小數)而f的值仍為5.75。
3.8 算術運算符和算術表達式
c語言中運算符和表達式數量之多,在高級語言中是少見的。正是豐富的運算符和表達式使C語言功能十分完善。這也是C語言的主要特點之一。
C語言的運算符不僅具有不同的優先順序,而且還有一個特點,就是它的結合性。在表達式中,各運算量參與運算的先後順序不僅要遵守運算符優先順序別的規定,還要受運算符結合性的制約,以便確定是自左向右進行運算還是自右向左進行運算。這種結合性是其它高級語言的運算符所沒有的,因此也增加了C語言的復雜性。
3.8.1 C運算符簡介
⑷ mvc 是什麼意思
MVC全名是Model View Controller,是模型(model)-視圖(view)-控制器(controller)的縮寫,一種軟體設計典範,用一種業務邏輯、數據、界面顯示分離的方法組織代碼,將業務邏輯聚集到一個部件裡面,在改進和個性化定製界面及用戶交互的同時,不需要重新編寫業務邏輯。MVC被獨特的發展起來用於映射傳統的輸入、處理和輸出功能在一個邏輯的圖形化用戶界面的結構中。
⑸ c語言高手進
C語言一般用在底層開發,比如驅動,通訊協議棧,圖像處理等,直接用C語言開發的應用還是比較少的。C語言不想java那些高級語言那樣容易寫出個小工具小程序的,所以很多人都不知道用C語言干什麼。
我感覺學完C語言只是個開始,因為在實際開發中,會寫C語言根本不是個主要技術,相反它都算不上是技術,因為用C語言去實現的才是真正的技術。如果你決心用C語言的的話,你就要學習其他的技術了,比如操作系統相關。如果你還是個學生,時間比較多的話,你就可以學習一下數據結構方面的東西,一來可以熟練你的C語言,另外數據結構也還算重要的,說不準在某個領域就能用到了。
另外,編程語言這種東西都是觸類旁通的,學完C你可以看看C++,因為有基礎,所以學習c++會很快的,之後就可以看看MFC之類的,這樣就可以開發PC程序了。
⑹ C#中的MVC
MVC是一種開發模式 並不分語言 任何網站開發語言都可以以這種模式開發~ 主要就是像你說的 是分層開發 M模型層 主要就是負責資料庫方面的 像一些數據的增,刪,改,查等操作,v就是視圖層 放一些表形的控制項圖片之類的東西總之就是給人看的。c就是控制層 主要負責一些業務邏輯,可以說是 視圖和數據之間的處理功能!
⑺ 一個C語言程序是由哪幾個部分組成,每一個部分起什麼作用
預定義 全局變數(可無) 主函數 自定義函數(可無)
預定義包括載入頭文件、定義宏、預編譯等!全局變數你懂得!主函數是程序入口點!自定義函數是對方法的封裝!!總的來說主函數是控制模塊,用於對自定義函數及系統函數的載入與調用,而自定義函數屬於業務代碼!!所謂業務是指完成指定任務的代碼,例如要求完成兩個數交換,那麼這個就是任務,而你要寫的函數就是業務邏輯代碼!!一般在後台運行!!而printf(),puts()這兩個函數都可以工作於顯示用來編寫初級界面挺好!!所以一般也可將C語言化成MVC模式(M指業務邏輯層,業務代碼,V指界面層,編寫界面,C控制代碼,例如main(),也可讓main()調用一個控制個函數調用的函數)!!!只要你對高級C部分有所了解!!一樣完成java等面向對象語言的開發模式!!例如滑鼠鍵盤操作要熟(不是指敲鍵盤哦是在程序中實現鍵盤的功能及滑鼠的功能)!!當然這只是個人的言論!不過對於開發來說是很好的模式!!
⑻ 什麼是MVC啊
MVC全名是Model View Controller,是模型(model)-視圖(view)-控制器(controller)的縮寫,一種軟體設計典範,用一種業務邏輯、數據、界面顯示分離的方法組織代碼,將業務邏輯聚集到一個部件裡面,在改進和個性化定製界面及用戶交互的同時,不需要重新編寫業務邏輯。
MVC被獨特的發展起來用於映射傳統的輸入、處理和輸出功能在一個邏輯的圖形化用戶界面的結構中。
MVC開始是存在於桌面程序中的,M是指業務模型,V是指用戶界面,C則是控制器,使用MVC的目的是將M和V的實現代碼分離,從而使同一個程序可以使用不同的表現形式。
比如一批統計數據可以分別用柱狀圖、餅圖來表示。C存在的目的則是確保M和V的同步,一旦M改變,V應該同步更新。
模型-視圖-控制器(MVC)是Xerox PARC在二十世紀八十年代為編程語言Smalltalk-80發明的一種軟體設計模式,已被廣泛使用。
後來被推薦為Oracle旗下Sun公司Java EE平台的設計模式,並且受到越來越多的使用ColdFusion和PHP的開發者的歡迎。模型-視圖-控制器模式是一個有用的工具箱,它有很多好處,但也有一些缺點。
(8)c語言mvc擴展閱讀:
MVC 編程模式:
MVC 是一種使用 MVC(Model View Controller 模型-視圖-控制器)設計創建 Web 應用程序的模式:
1、Model(模型)表示應用程序核心(比如資料庫記錄列表)。
2、View(視圖)顯示數據(資料庫記錄)。
3、Controller(控制器)處理輸入(寫入資料庫記錄)
MVC 模式同時提供了對 HTML、CSS 和 JavaScript 的完全控制:
1、Model(模型)是應用程序中用於處理應用程序數據邏輯的部分。
通常模型對象負責在資料庫中存取數據。
2、View(視圖)是應用程序中處理數據顯示的部分。
通常視圖是依據模型數據創建的。
3、Controller(控制器)是應用程序中處理用戶交互的部分。
通常控制器負責從視圖讀取數據,控制用戶輸入,並向模型發送數據。
MVC 分層有助於管理復雜的應用程序,因為您可以在一個時間內專門關注一個方面。例如,您可以在不依賴業務邏輯的情況下專注於視圖設計。同時也讓應用程序的測試更加容易。
MVC 分層同時也簡化了分組開發。不同的開發人員可同時開發視圖、控制器邏輯和業務邏輯。
框架內容:
MVC指MVC模式的某種框架,它強制性的使應用程序的輸入、處理和輸出分開。使用MVC應用程序被分成三個核心部件:模型、視圖、控制器。它們各自處理自己的任務。最典型的MVC就是JSP + servlet + javabean的模式。
1、視圖
視圖是用戶看到並與之交互的界面。對老式的Web應用程序來說,視圖就是由HTML元素組成的界面,在新式的Web應用程序中,HTML依舊在視圖中扮演著重要的角色,但一些新的技術已層出不窮,它們包括Adobe Flash和像XHTML,XML/XSL,WML等一些標識語言和Web services.
MVC好處是它能為應用程序處理很多不同的視圖。在視圖中其實沒有真正的處理發生,不管這些數據是聯機存儲的還是一個雇員列表,作為視圖來講,它只是作為一種輸出數據並允許用戶操縱的方式。
2、模型
模型表示企業數據和業務規則。在MVC的三個部件中,模型擁有最多的處理任務。
例如它可能用像EJBs和ColdFusion Components這樣的構件對象來處理資料庫,被模型返回的數據是中立的,就是說模型與數據格式無關,這樣一個模型能為多個視圖提供數據,由於應用於模型的代碼只需寫一次就可以被多個視圖重用,所以減少了代碼的重復性。
3、控制器
控制器接受用戶的輸入並調用模型和視圖去完成用戶的需求,所以當單擊Web頁面中的超鏈接和發送HTML表單時,控制器本身不輸出任何東西和做任何處理。它只是接收請求並決定調用哪個模型構件去處理請求,然後再確定用哪個視圖來顯示返回的數據。
常見框架Struts:
Struts是Apache軟體基金下Jakarta項目的一部分。Struts框架的主要架構設計和開發者是Craig R.McClanahan。Struts 是Java Web MVC框架中不爭的王者。經過長達九年的發展,Struts已經逐漸成長為一個穩定、成熟的框架,並且佔有了MVC框架中最大的市場份額。
但是Struts某些技術特性上已經落後於新興的MVC框架。面對Spring MVC、Webwork2這些設計更精密,擴展性更強的框架,Struts受到了前所未有的挑戰。但站在產品開發的角度而言,Struts仍然是最穩妥的選擇。
Struts有一組相互協作的類(組件)、Servlet以及jsp tag lib組成。基於struts構架的web應用程序基本上符合JSP Model2的設計標准,可以說是MVC設計模式的一種變化類型。
根據上面對framework的描述,很容易理解為什麼說Struts是一個web framework,而不僅僅是一些標記庫的組合。但 Struts 也包含了豐富的標記庫和獨立於該框架工作的實用程序類。
Struts有其自己的控制器(Controller),同時整合了其他的一些技術去實現模型層(Model)和視圖層(View)。
在模型層,Struts可以很容易的與數據訪問技術相結合,包括EJB,JDBC和Object Relation Bridge。在視圖層,Struts能夠與JSP, Velocity Templates,XSL等等這些表示層組件相結合。
參考資料:
網路-MVC框架