基于Java的简单银行管理系统(MVC设计模式)

功能展示

项目描述

本系统涉及的知识点主要包括,面向对象,I/O操作,异常处理,集合等操作。。。 本系统主要针对服务用户以及后台管理人员,各自可以实现各自操作:

项目结构

除去测试模块不谈(对一些功能的测试),本项目基本结构如下:

data

data模块用于管理数据,两个.dat文件分别存储用户以及管理员信息,DataPath保存的是文件的路径,方便操作(绝对路径),FileInOut主要用于控制文件的读入读出操作,内置两个函数:

service

此模块主要用于对用户数据存储,以及相关操作,接下来一一介绍: Information是UserInfo以及AdminInfo的父类,用于定义信息 Information为抽象类,设置此类的目的是方便对数据操作,想要获取任何一种身份的信息,只需要调他们共有的父类就行了,然后再具体身份具体转换,另外InfoList是直接对信息进行操作(包含了添加,删除,修改等操作) 而文件直接存储的是InfoList,因此他们都实现了序列化,结构如下:

utils

工具类,一个是自定义的异常类InfoException,另一个是控制用户从键盘输入和输出的工具类MyUtils,其中控制输入密码的部分,因为我为了方便测试,就没有设置为输入隐藏,感兴趣的可以自行设置。

view

视图层,直接与用户交互的模块,其中EnterMain为程序主入口,通过这个类进入。 AdminLogin和UserLogin完成用户以及管理员的登录,以及功能界面的显示,UserMenu和AdminMenu是对具体功能的细化,在基础功能上加入了与用户交互的部分。

欠缺与总结

本系统在构思的时候,是想让代码尽量轻量化,避免重复性,因此采用了这种模式,让各部分都相互独立,也方便管理。但是我设计的各个类之间联系不大,就不可避免的还是存在了重复性代码,因此显得有些多余。 但是因为着急完成,抽的课余时间写的,想着锻炼一下,花了三天时间。 我的设计顺序是:先设计信息模块,再对文件操作定义好,再去封装操作信息的功能类,等到这些都完成后,就该最外层与用户直接交互的部分了;先创建两个工具类避免重复调用输入,最后对各个功能加工,加入提示信息。 总之,收获还是很大的,毕竟是自己独立完成的,也加深了我对这种设计模式的认识。

源码下载

经验分享 程序员 微信小程序 职场和发展