基于MVC模式的個人財務管理系統(tǒng)的設計與實現(xiàn)
佚名
論文導讀:MVC模式已經(jīng)成為一個經(jīng)典的軟件體系結(jié)構,它采用了“分治”的思想,強制性地使應用程序的輸入、處理和輸出分開,將系統(tǒng)分成三個大的類:模型(Model)、視圖(View)和控制器(Controller)。個人財務管理系統(tǒng)能夠記錄用戶日常生活中收支項目的詳細信息,并能夠分析圖表、進行財務規(guī)劃、統(tǒng)一管理各種資產(chǎn)、進行數(shù)據(jù)搜索以及導出數(shù)據(jù)到Excel表格。 關鍵詞:MVC模式,財務管理系統(tǒng) 1、MVC設計模式簡介 MVC(Model-View-Controller)由Trygve Reenskaug提出,首先被應用在SmallTalk-80環(huán)境中,是許多交互式界面系統(tǒng)的構成基礎。論文格式。MVC模式已經(jīng)成為一個經(jīng)典的軟件體系結(jié)構,它采用了“分治”的思想,強制性地使應用程序的輸入、處理和輸出分開,將系統(tǒng)分成三個大的類:模型(Model)、視圖(View)和控制器(Controller)。 1.1視圖 視圖是用戶看到并與之交互的界面,把模型數(shù)據(jù)、邏輯關系及狀態(tài)信息以特定形式展示給用戶。它從模型獲得顯示信息,對于相同的信息可以有多個不同的顯示形式或視圖。MVC設計模式對于視圖的處理僅限于視圖上數(shù)據(jù)的采集和處理,以及用戶的請求,而不包括在視圖上的業(yè)務流程的處理。視圖只是作為一種輸出數(shù)據(jù)并允許用戶操縱的方式。 1.2模型 模型是所有的商業(yè)邏輯代碼片段的所在[1]。它表示數(shù)據(jù)和業(yè)務規(guī)則,封裝了問題的核心數(shù)據(jù)、邏輯和功能的計算關系,管理應用程序域的行為和數(shù)據(jù),擁有最多的處理任務。它獨立于具體的界面表達和I/O操作,被模型返回的數(shù)據(jù)是中立的,就是說模型與數(shù)據(jù)格式無關,這樣一個模型能為多個視圖提供數(shù)據(jù)。 1.3控制器 控制器是處理用戶與軟件交互操作,使模型和視圖協(xié)調(diào)工作,確保用戶界面與模型間的對應聯(lián)系的部件。它接受用戶的輸入,將輸入反饋給模型,進而實現(xiàn)對模型的計算控制。同時,模型的更新與修改也將通過控制器來通知視圖,從而保持各個視圖與模型的一致性。 1.4MVC的處理過程 首先,控制器接受用戶的請求,并決定應該調(diào)用哪個模型來進行處理。然后,模型用業(yè)務邏輯來處理用戶的請求并返回數(shù)據(jù)。最后,控制器用相應的視圖格式化模型返回的數(shù)據(jù),并通過表示層呈現(xiàn)給用戶。模型、視圖、控制器三者之間的關系和各自主要功能(見圖1)。 圖1 MVC組件類型的關系和功能 2、個人財務管理系統(tǒng)的設計與實現(xiàn) 個人財務管理系統(tǒng)能夠記錄用戶日常生活中收支項目的詳細信息,并能夠分析圖表、進行財務規(guī)劃、統(tǒng)一管理各種資產(chǎn)、進行數(shù)據(jù)搜索以及導出數(shù)據(jù)到Excel表格。個人財務管理系統(tǒng)的設計采用了MVC模式,所用的數(shù)據(jù)庫是SQL Server 2000,在.NET平臺上實現(xiàn)該系統(tǒng),其中涉及到JQuery、AJAX、ADO.NET等技術。在Visual Studio 2008中,通過創(chuàng)建ASP.NET MVC WEB APLICATION,系統(tǒng)會自動生成一個MVC框架,該框架包括了Views、Controllers和Models,在這個基礎上開始系統(tǒng)的實現(xiàn)。 2.1 數(shù)據(jù)庫設計 個人財務管理系統(tǒng)數(shù)據(jù)庫Accout包含三個數(shù)據(jù)表: (1)用戶表(Users)由用戶號、用戶名、真實姓名、密碼、性別、職業(yè)組成。 (2)賬目表(Accounts)由賬目類型、用戶、支出/收入、金額、項目名稱、日期組成。論文格式。 (3)賬目類型表(AccountsTypes)由賬目類型號、賬目類型名組成。 2.2 構建視圖層 VisualStudio.NET在視圖設計器的工具箱中提供了數(shù)據(jù)、Web窗體、組件、HTML等各種控件,同時還提供了用戶控件。通過以上各種控件,可以像開發(fā)Windows界面一樣以所見即所得的方式進行可視化設計。在ASP.NET開發(fā)環(huán)境中設計視圖由aspx頁面實現(xiàn)。 用戶界面由以下幾個主要的頁面組成: (1)首頁顯示相關信息:About.aspx、Index.aspx。 (2)注冊與登錄界面:Register.aspx、Logon.aspx、Error.aspx。 (3)登錄后進入主界面:TitleContent.aspx 、mainContent.aspx。 (4)記賬,編輯、刪除賬目信息的界面:AccountEdit.aspx、AccountDel.aspx、AccountUpdate.aspx等。 (5)查看賬目信息的界面:AccountView.aspx等。 (6)用戶修改密碼界面:ChangePassword.aspx。 2.3 模型層的設計與實現(xiàn) (1)數(shù)據(jù)庫連接模型:使用ADO.NET技術定義與數(shù)據(jù)庫連接的方法、關閉數(shù)據(jù)庫方法。 (2)業(yè)務類型模型: ①本系統(tǒng)中的IdbADO.cs和DbADO.cs業(yè)務模型分別為抽象出數(shù)據(jù)庫的公共操作:查詢、添加、刪除、修改的接口以及實現(xiàn)接口的類。以后的所有操作只要實現(xiàn)接口或者繼承類就可以了。 ②接口ICriteria.cs抽象出復雜查詢條件、類Order.cs、Criteria.cs實現(xiàn)復雜查詢條件。 ③接口IUserService、IAccountService、IAccountTypeService抽象出模型層向控制層(Controller)提供的服務,并由類UserService、AccountService、AccountTypeService實現(xiàn)這三個接口。 (3)實體層模型:為每個數(shù)據(jù)表創(chuàng)建一個實體層,一個數(shù)據(jù)字段作為一個屬性,每個屬性都有自己的get和set方法。在這個系統(tǒng)中有User.cs、Account.cs、AccountType.cs、EntityFactory.cs四個實體層模型,其中EntityFactory.cs類用來產(chǎn)生實體。 2.4 構建控制器 ASP.NET中的代碼分離機制使View中的代碼與Model及Controller中的代碼能夠很容易分離。每個aspx文件對應了一個后端代碼文件,通過該后端代碼來實現(xiàn)Controller的功能。論文格式。 本系統(tǒng)中的控制器有:AccountController、HomeController、testController、UserController等等。這些控制器根據(jù)用戶的請求來判斷調(diào)用哪個action,使用哪個模型和視圖來完成相應的操作。用戶的請求主要有:登錄、錄入、查詢、賬目信息列表、編輯、保存、分析、刪除等。這些請求通過視圖層輸入,由控制層傳遞給模型進行處理。 該系統(tǒng)的設計中將業(yè)務邏輯、與數(shù)據(jù)庫連接和交互的公共操作封裝在單獨的類中,用專門的類來處理業(yè)務邏輯和數(shù)據(jù)邏輯,從而提高了代碼的重用性。 3、結(jié)語 本文在.NET平臺上采用MVC模式作為個人財務管理系統(tǒng)的設計與實現(xiàn)標準,有效維護了系統(tǒng)的復雜性,并使個人財務管理系統(tǒng)具有良好的可擴展性、集成性、易維護性,并縮短了系統(tǒng)的開發(fā)和實施周期,同時減少了總成本。