我现在正在设计一个软件,它有几个抽象层次。这可能是我开始设计的最复杂的一段代码,并且它要求易于升级,所以我想在开始编写任何代码之前确保我走在正确的轨道上。
基本上,将有 3 个主要级别的课程。这两个班级需要互相交谈。
首先是输入源数据。目前有两种主要类型的输入数据,它们产生相似但不相同的输出。这些类的主要目标是从两个不同的源中获取数据并将其转换为通用接口,以供程序的其余部分使用。
第二组将是外部库的适配器。该库一直在定期更新,我没有理由怀疑它不会在这些年中继续更新。最有可能的是,每次升级都将与前一次非常相似,但可能会进行一些小的更改以支持新的库版本。这个级别将负责获取输入,并将它们格式化以使用输出类。
最后一类是输出。我认为这不需要多个版本,但至少需要指定两个不同的输出目录。我怀疑最简单的做法是在创建输出类时简单地传入一个输出目录,这是唯一需要的抽象级别。这个类会经常更新,但不要求支持多个版本。