问题
我有一个应用程序,需要从 .txt 文件(先前提供并存在于本地存储中,无需提取)中加载大多数数据。假设我目前有3个模型:Person
,Role
,Task
及其相关数据 Persons.txt , Roles.txt , Tasks.txt 。每个文件都有一个描述每个条目结构的标头(,例如id;名称;姓氏),. txt文件中的每一行代表一个条目(标头除外)。话虽如此,条目的格式可能错误(与标题不同),因此必须跳过这些条目。
目标
我想以某种方式创建一个通用数据加载器,该加载器将加载数据(逐行读取.txt,验证条目,修剪并转换为对象实例)并根据我传递给它们的类返回对象列表。例如,DataLoader<Person>
仅用于加载人员数据。当前的解决方案对我命名的每个类都使用Singleton模式,并且还包含用于解析,验证和转换数据的逻辑。其原因主要是因为必须从应用程序的所有其他部分都可以访问数据,但是每个类都包含太多的逻辑,而其他大多数类仅依赖于这些Singleton,这在我看来并不好。
问题
在此用例中实现的最佳(最简洁)设计模式是什么?回答之前需要注意的几件事:
- 文件格式永远不会更改(始终为.txt)
- 将来可能会加载更多数据(例如
Department
和 Departments.txt 等)