基于MVC模式的个人财务管理系统的设计与实现
佚名 2015-04-27
论文导读:MVC模式已经成为一个经典的软件体系结构,它采用了“分治”的思想,强制性地使应用程序的输入、处理和输出分开,将系统分成三个大的类:模型(Model)、视图(View)和控制器(Controller)。个人财务管理系统能够记录用户日常生活中收支项目的详细信息,并能够分析图表、进行财务规划、统一管理各种资产、进行数据搜索以及导出数据到Excel表格。 关键词:MVC模式,财务管理系统 1、MVC设计模式简介 MVC(Model-View-Controller)由Trygve Reenskaug提出,首先被应用在SmallTalk-80环境中,是许多交互式界面系统的构成基础。论文格式。MVC模式已经成为一个经典的软件体系结构,它采用了“分治”的思想,强制性地使应用程序的输入、处理和输出分开,将系统分成三个大的类:模型(Model)、视图(View)和控制器(Controller)。 1.1视图 视图是用户看到并与之交互的界面,把模型数据、逻辑关系及状态信息以特定形式展示给用户。它从模型获得显示信息,对于相同的信息可以有多个不同的显示形式或视图。MVC设计模式对于视图的处理仅限于视图上数据的采集和处理,以及用户的请求,而不包括在视图上的业务流程的处理。视图只是作为一种输出数据并允许用户操纵的方式。 1.2模型 模型是所有的商业逻辑代码片段的所在[1]。它表示数据和业务规则,封装了问题的核心数据、逻辑和功能的计算关系,管理应用程序域的行为和数据,拥有最多的处理任务。它独立于具体的界面表达和I/O操作,被模型返回的数据是中立的,就是说模型与数据格式无关,这样一个模型能为多个视图提供数据。 1.3控制器 控制器是处理用户与软件交互操作,使模型和视图协调工作,确保用户界面与模型间的对应联系的部件。它接受用户的输入,将输入反馈给模型,进而实现对模型的计算控制。同时,模型的更新与修改也将通过控制器来通知视图,从而保持各个视图与模型的一致性。 1.4MVC的处理过程 首先,控制器接受用户的请求,并决定应该调用哪个模型来进行处理。然后,模型用业务逻辑来处理用户的请求并返回数据。最后,控制器用相应的视图格式化模型返回的数据,并通过表示层呈现给用户。模型、视图、控制器三者之间的关系和各自主要功能(见图1)。 图1 MVC组件类型的关系和功能 2、个人财务管理系统的设计与实现 个人财务管理系统能够记录用户日常生活中收支项目的详细信息,并能够分析图表、进行财务规划、统一管理各种资产、进行数据搜索以及导出数据到Excel表格。个人财务管理系统的设计采用了MVC模式,所用的数据库是SQL Server 2000,在.NET平台上实现该系统,其中涉及到JQuery、AJAX、ADO.NET等技术。在Visual Studio 2008中,通过创建ASP.NET MVC WEB APLICATION,系统会自动生成一个MVC框架,该框架包括了Views、Controllers和Models,在这个基础上开始系统的实现。 2.1 数据库设计 个人财务管理系统数据库Accout包含三个数据表: (1)用户表(Users)由用户号、用户名、真实姓名、密码、性别、职业组成。 (2)账目表(Accounts)由账目类型、用户、支出/收入、金额、项目名称、日期组成。论文格式。 (3)账目类型表(AccountsTypes)由账目类型号、账目类型名组成。 2.2 构建视图层 VisualStudio.NET在视图设计器的工具箱中提供了数据、Web窗体、组件、HTML等各种控件,同时还提供了用户控件。通过以上各种控件,可以像开发Windows界面一样以所见即所得的方式进行可视化设计。在ASP.NET开发环境中设计视图由aspx页面实现。 用户界面由以下几个主要的页面组成: (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 模型层的设计与实现 (1)数据库连接模型:使用ADO.NET技术定义与数据库连接的方法、关闭数据库方法。 (2)业务类型模型: ①本系统中的IdbADO.cs和DbADO.cs业务模型分别为抽象出数据库的公共操作:查询、添加、删除、修改的接口以及实现接口的类。以后的所有操作只要实现接口或者继承类就可以了。 ②接口ICriteria.cs抽象出复杂查询条件、类Order.cs、Criteria.cs实现复杂查询条件。 ③接口IUserService、IAccountService、IAccountTypeService抽象出模型层向控制层(Controller)提供的服务,并由类UserService、AccountService、AccountTypeService实现这三个接口。 (3)实体层模型:为每个数据表创建一个实体层,一个数据字段作为一个属性,每个属性都有自己的get和set方法。在这个系统中有User.cs、Account.cs、AccountType.cs、EntityFactory.cs四个实体层模型,其中EntityFactory.cs类用来产生实体。 2.4 构建控制器 ASP.NET中的代码分离机制使View中的代码与Model及Controller中的代码能够很容易分离。每个aspx文件对应了一个后端代码文件,通过该后端代码来实现Controller的功能。论文格式。 本系统中的控制器有:AccountController、HomeController、testController、UserController等等。这些控制器根据用户的请求来判断调用哪个action,使用哪个模型和视图来完成相应的操作。用户的请求主要有:登录、录入、查询、账目信息列表、编辑、保存、分析、删除等。这些请求通过视图层输入,由控制层传递给模型进行处理。 该系统的设计中将业务逻辑、与数据库连接和交互的公共操作封装在单独的类中,用专门的类来处理业务逻辑和数据逻辑,从而提高了代码的重用性。 3、结语 本文在.NET平台上采用MVC模式作为个人财务管理系统的设计与实现标准,有效维护了系统的复杂性,并使个人财务管理系统具有良好的可扩展性、集成性、易维护性,并缩短了系统的开发和实施周期,同时减少了总成本。