类 PersistenceManager

java.lang.Object
com.example.renderer.singleton.PersistenceManager

public class PersistenceManager extends Object
图形持久化管理器,使用单例模式

负责图形的序列化和反序列化,主要功能:

  • 将图形列表保存为JSON文件
  • 从JSON文件加载图形列表
  • 处理多态类型的序列化

使用Gson库实现JSON序列化

  • 方法详细资料

    • getInstance

      public static PersistenceManager getInstance()
      获取线程安全的PersistenceManager单例实例

      该方法使用类初始化保证线程安全,无需同步

      返回:
      全局唯一的PersistenceManager实例
    • saveShapesToFile

      public void saveShapesToFile(List<Shape> shapes, String filePath) throws IOException
      将图形列表序列化为JSON格式并保存到指定文件

      该方法会覆盖目标文件的所有内容,使用UTF-8编码写入。

      参数:
      shapes - 要保存的图形列表(非null)
      filePath - 目标文件路径(非null或空)
      抛出:
      NullPointerException - 如果shapes或filePath为null
      IllegalArgumentException - 如果filePath为空字符串
      IOException - 如果文件写入失败或路径不可访问
      com.google.gson.JsonIOException - 如果JSON序列化过程中发生错误
    • loadShapesFromFile

      public List<Shape> loadShapesFromFile(String filePath) throws IOException
      从JSON文件加载图形列表

      该方法会读取指定JSON文件并反序列化为图形对象列表。 支持处理多态类型的图形对象。

      参数:
      filePath - 要读取的文件路径(非null或空)
      返回:
      包含所有反序列化图形对象的不可修改列表
      抛出:
      NullPointerException - 如果filePath为null
      IllegalArgumentException - 如果filePath为空字符串
      FileNotFoundException - 如果指定文件不存在
      IOException - 如果文件读取失败
      com.google.gson.JsonParseException - 如果JSON格式不合法
      com.google.gson.JsonSyntaxException - 如果JSON与目标类型不匹配
      IllegalStateException - 如果反序列化后的数组为null