微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何设计一个可以接受任何数据源并将其转换为可扩展的只读配置对象的包?

如何解决如何设计一个可以接受任何数据源并将其转换为可扩展的只读配置对象的包?

我有一个 Java 包,其目的是从外部配置文件(XML、JSON、CSV 等)接收配置参数,将它们转换为 POJO 并以不可变的、可扩展的对象的形式返回给呼叫者。调用者只能读取参数,不能修改它们。如果加载、解析或转换失败,包必须返回一个认配置对象,其中包含基本的设置数量和预定义的值。将来设置的数量可能会增加,并且可能会有另一个数据源。

enter image description here

基本上,它是一个带有输入和输出的黑匣子。输入可以是任何数据源,具有基本设置,可能会增加输出一个 Java 对象,其中包含所有设置(同样可能会增加)。并且它必须是只读的。首先,我想写一个带有基本设置的getter接口,如果设置列表扩展,可以扩展吗?类似的东西

interface Config { ... }

abstract class BasicConfig implements Config {...}

class ExtendedConfig extends BasicConfig {...}

然后我想,如果将来设置列表增加,也许将 XML 解析为 HashMap 可以解决问题。在这种情况下,我可以制作 HashMap<String,Object> 并从中读取任何内容,而无需知道它包含多少设置。

这里最好的设计解决方案是什么?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。