Skip to content

图书管理系统

本文章记录相关的设计思想及其注意事项,方便之后复习回忆 代码链接

所需思想

  1. 单例模式

    • 图书馆的实例,Scanner 输入(但是这个是不行的,因为修改不了源码)
  2. 工厂模式

    • 管理员用户,普通用户
  3. 代理模式

    • 用户代理,处理不同用户与图书馆之间的交互

问题

  1. 为什么有些地方是用工具类,但是有些地方是要依赖对象呢(以后用Bean注入)
    1. 依赖对象的是支持 AOP(面向切面),在 调试 等场景十分便捷
    2. 工具类适用于 没有成员变量 的修改的情况下,输入确定,输出就确定,比如 Math, String 处理等 而有成员变量的修改就不建议用 工具类了
  2. 使用 List 添加数据的时候,为什么会出现 java.lang.UnsupportedOperationExceptionImmutableCollections
    1. List.of() 创建的数组只能读取,不能修改
    2. 可以通过 new ArrayList<>(Arrays.asList(array)) 来解决
  3. 为什么获取文件的数据的时候依然是启动前的数据?而不是我在启动后修改的数据
    1. 当读取启动后,它会在内存中存储一份,而不读取硬盘上的数据,所以在启动后修改数据是读取不到的