APP下载

基于WPF的账单管理程序的设计与实现

2019-09-04邹珺

软件工程 2019年8期
关键词:架构

邹珺

摘  要:早期的账单管理大部分都是人工操作,其缺点是耗费大量的人力和时间。为了让用户高效、便捷地管理账单,账单管理程序能实现简单的个人消费管理,它能够记录和统计个人每月的花销,提供良好的历史信息查询功能。本文主要描述使用WPF技术实现账单管理程序,通过典型的三层架构模式进行开发,为每一个层创建一个类库,为用户界面层创建一个WPF项目,具体由逻辑分层实现程序的功能,使用接口来实现层与层之间的解耦,针对账单管理可以达到良好的效果。

关键词:账单管理程序;架构;WPF

中图分类号:TP312     文献标识码:A

Abstract:Most bill management used to be manually conducted with the shortcoming of consuming a lot of manpower and time.In order to enable users to manage bills efficiently and conveniently,the bill management program can realize simple personal consumption management.It can record and count individual monthly expenses and provide good historical information query function.This paper mainly describes how to use WPF technology to implement bill management program through the typical three-tier architecture model to develop,creating a class library for each tier and a WPF project for the user interface layer,specifically realizing the function of the program by logical hierarchy,using interface to achieve decoupling between tiers,which brings good results for bill management.

Keywords:bill management program;framework;WPF

1   引言(Introduction)

隨着计算机技术的不断发展,传统的账单管理出现了很多弊端,特别是人工操作,会带来很多误差,甚至很严重的问题。为了避免上述问题,开发了账单管理程序,该程序能提供的功能包括:(1)显示每月的费用记录;(2)存档支出记录;(3)显示最近的消费底线;(4)花费统计图表;(5)特定时间段内的花费统计图表;(6)显示关于每张账单的信息;(7)可以将账单存档记录导出到文件进行备份;(8)可以在多语言间进行切换,实现多语言功能。

本程序使用WPF实现其具体功能,通过软件分层架构模式,解决因软件复杂度的增加而带来的开发和维护问题,将解决方案的组件分隔到不同的层中,自底向上分别是用于访问数据的数据访问层、用于处理业务逻辑的中间业务逻辑层、用于呈现用户界面的表示层,重点是结合分层架构中的逻辑分层来实现[1]。

2 账单管理程序概述(Overview of the bill management program)

账单管理程序使用三层架构进行开发,开发过程中,每一层会创建一个对应的类库项目,其功能模块分别为账单、图表、存档和杂项。使用TabControl控件来分页显示账单信息,账单页面用一个DataGrid控件显示过去31天的账单记录。用户在底部的文本框中输入账单记录,单击“添加”按钮,输入的账单信息将添加到DataGrid控件中。单击下一页按钮,将会切换到图表页面,该页面使用图表的形式显示账单统计信息,账单管理器主界面如图1所示,账单图表页面如图2所示。

3  分层结构的实现(Implementation of hierarchical structure)

3.1   实现数据访问层

数据访问层提供了一种弹性的与数据库无关的架构,所以可以使用接口来定义数据访问契约。不同类型的数据库通过实现这个接口,来提供特定数据库类型的功能,而业务逻辑层通过调用这个接口来获取数据,不用知道特定数据库细节信息[3]。数据库访问架构如图5所示。

3.2   实现业务逻辑层

业务逻辑层实现在BillsBusinessLogicLib项目中,该层实现了与数据访问层相同的架构。将业务逻辑层中将要实现的功能抽象为一个接口,调用方只与接口进行交互,不用关心具体的业务逻辑实现[4]。业务逻辑层与数据访问层紧密联系,同时提供给表示层显示的数据,在业务逻辑层中定义了一个接口和一个实现接口的类,以及一个自定义异常类,如图6所示。

账单管理业务逻辑接口定义了账单管理系统中将要出现的功能逻辑方法或属性,软件分层的目的在于实现层次分明,层与层之间不能过度耦合,通过定义接口,让调用方只与接口交互,不用关心特定的实现细节[5]。这样的设计方式也便于维护和扩展,例如软件运行一段时间,现有的业务逻辑不能满足业务处理的需求,那么可以通过定义一个新类,实现业务逻辑接口,让调用端无缝的调用新的业务逻辑层,实现层与层之间的解耦。

3.3   实现表示层

猜你喜欢

架构
基于FPGA的RNN硬件加速架构
功能架构在电子电气架构开发中的应用和实践
基于云服务的图书馆IT架构
WebGIS架构下的地理信息系统构建研究
LSN DCI EVPN VxLAN组网架构研究及实现
架构——李延洲写生作品展
基于SDN与NFV的网络切片架构
一种基于FPGA+ARM架构的μPMU实现
具身学习环境SMALLab的架构分析及启示
基于在线双冗余CANopen架构的管轨列控系统