zoukankan      html  css  js  c++  java
  • 面向对象设计大作业——图书馆管理系统

    图书馆管理系统

    1.功能调查与系统功能框架图

    1.1功能调查

    图书馆管理系统:针对图书馆的业务范围及特点,设计了采购子系统、编目子系统、打印子系统、检索统计子系统、流通信息子系统以及系统维护子系统,这几个子系统包括了图书馆的主要业务工作,可以全面实现对图书馆的采购、编目、检索、统计和流通等业务的计算机管理。系统采用智能导航式界面设计,在业务流程的实现方面更加注重智能化、规范化、流程化,极大地提高图书馆的管理效率及服务质量。同时该系统和下面的:电子阅览室管理子系统、通道验证管理子系统、证卡打印子系统和OA办公子系统构成图书馆局部一卡通。

    通过百度百科可以知道图书馆管理系统主要包含用户登陆注册,书籍查询,书籍借阅归还,书籍管理等功能。使用者主要是公共使用者(如学生,老师等)还有图书馆管理员。公共使用者主要使用查询,借阅,归还等功能,管理员主要使用书籍管理(书籍增删以及信息修改)等功能。

    1.2功能框架图

    2.类的设计

    3.类说明

    User类:包含用户信息。对应一个user文件,文件中包含用户基本信息(包括身份信息,借还书情况);
    Book类:主要有书名,作者,价格,种类等属性,方法主要包含搜索方法(按id搜索,按作者搜索,按种类搜索等)。书的对象可以存储在本地store文件中。这个文件相当于“书库”的作用。
    Library类:里面包含一条链表用于存储从文件中读取出来的书的数据。实现借书,还书,增删改书籍的作用。其中借书与还书,对应user文件,里面包含着用户的信息以及借还书情况。

    4.包(package)的规划设计

    Packet model

    Packet service

    Packet dao

    5.特色(可选):

    5.1 DAO模式的使用

    该系统在存储书籍,存储用户信息的时候使用了Dao模式,Dao模式的优势如下:什么是DAO?

    DAO 模式的优势就在于它实现了两次隔离:
    1、隔离了数据访问代码和业务逻辑代码。业务逻辑代码直接调用DAO方法即可,完全感觉不到数据库表的存在。分工明确,数据访问层代码变化不影响业务逻辑代码,这符合单一职能原则,降低了藕合性,提高了可复用性。
    2、隔离了不同数据库实现。采用面向接口编程,如果底层数据库变化,如由 MySQL 变成 Oracle 只要增加 DAO 接口的新实现类即可,原有 MySQ 实现不用修改。这符合 "开-闭" 原则。该原则降低了代码的藕合性,提高了代码扩展性和系统的可移植性。

    理解:

    • 业务逻辑代码,即你要实现的功能函数。DAO模式隔离了数据访问代码和业务逻辑代码,即DAO接口只需要定义方法,具体用何种方式实现功能他就不再过问了。在测试函数中,可以选择不同的数据结构进行存储,各个文件,类之间分工明确。代码的扩展性也更好。
    • 面向接口编程就是面向共同行为进行编程。可以将接口声明与实现分离开,从而大大提高程序的灵活性。DAO模式的灵活性体现在,如果想要将存储的方式改变,只需要在DAO接口添加一个新的实现类就行,方便快速。
    • 看见隔离这个词,第一个想到的概念就是“安全”。数据功能的实现与其他代码之间被DAO接口文件隔离,就算底层数据崩溃了与我上层文件关系不大,安全。

    5.2数据持久化(数据存储)?准备使用什么方案?

    当前想法还是利用本地文件进行数据持久化保存。每一个user都会对应一个自己的书库store,这样可以方便统计借还书情况。总的书库也是个本地文档,用于管理员管理图书。

    代码规范检查

    使用阿里巴巴插件

  • 相关阅读:
    javaWeb学习笔记之关于重定向和请求转发的区别
    javaWeb学习笔记之关于Servlet文件下载
    javaWeb学习笔记之关于http
    javaWeb学习笔记之关于tomcat
    小程序订阅消息推送
    Oracle数据库序列的相关问题
    将本地项目push到gitlab仓库中
    面试之BI-SQL--table转换[2]
    面试之BI-SQL--table转换
    面试之C#--垃圾回收器什么时候回收?
  • 原文地址:https://www.cnblogs.com/shenchao123/p/14094086.html
Copyright © 2011-2022 走看看