面向对象设计大作业第二阶段
面对对象设计大作业:图书馆查书、借书、还书
1.功能调查
以上图片截自“小木屋图书”
由上图可知除了查书,借书,还书功能外,还包含:
- 展示书本信息
- 查看用户已借阅图书
补充:由于线上图书借阅的细节并没有线下图书馆的多,所以我稍作补充。
- 借阅图书时应有借阅的时间。
- 图书借阅应有续借以及提前归还功能。
2.系统框架功能图
3.类的设计
UML图
4.类说明
LibraryDAO
简述:DAO模式的接口;
方法:
- public boolean borrow(Book item):根据传入的Book类对象进行借阅,并将将借阅的图书存入用户数据。若图书数量为0,则返回false。
- public boolean returnn(Book item):归还图书,归还成功后将用户数据中删除该图书。
- public Book searchByName(String name):按图书书名查找。
- public Book searchByNumber(int num):按图书编号查找。
- public int getBookQuantity(Book item):获取图书数量。
LibraryDAOArrayImpl和LibraryDAOListImpl
简述:LibraryDAO接口方法的实现
- LibraryDAOArrayImpl使用数组对图书进行存储,经行增删查改的操作。LibraryDAOListImpl使用列表对数据经行操作。
Book
简述:图书类,包含图书的信息以及简单的操作。
属性:
- private String name; 图书的名字
- private String author; 图书作者的名字
- private String publisher; 出版社
- private String publishTime; 出版时间
- private double price; 价值
- private String type; 图书类型,如:小说,散文,诗集等等。
- private String borrowTime; 借阅时间
方法:构造方法以及各个属性的set与get方法,展示书籍信息的toString方法。
Users
简述:用户类,关于用户信息以及登录,注册。
属性:
- private String name;用户名
- private String pwd;密码,该属性不设置get方法
- private String info;用户信息,如借阅的图书。
方法:
- public static boolean Register(String userData, String name, String psw)传入用户名及密码进行注册,将数据存入文本文件中。
- public static boolean Login(String userData, String name, String psw)根据传入的用户名及密码在文本文件中进行匹配,若匹配成功,则将文本文件中用户数据存入userData。
- public static Book[] GetMyBook(String name, String userData, LibraryDAO Book)传入用户名,获取用户借阅的图书。
5.系统的包(package)的规划设计
library包
library包含Book类,Users类,由于书和用户是图书管理系统中的两大主体,所以将Book与Users类封装在library包中。
librarydao包
librarydao包主要是实现DAO模式而创建的,其中包含LibraryDAO、LibraryDAOArrayImpl、LibraryDAOListImpl
6.特色
- DAO模式。优点:一、先设计方法在着手实现能避免业务代码的混乱;二、DAO模式实现了数据访问接口与方法实现的相分离,这样能进行更好的分工。
- 数据存储采用简单的文本文件存储。
- git管理代码:git仓库