我正在设计一个软件,它有一些抽象层次。这可能是我开始设计的最复杂的代码片段,它需要易于升级,所以我想在开始编码之前确保我走在正确的轨道上。
基本上,将有3个主要级别的课程。这两个课程需要相互交流。
第一个是输入源数据。目前有两种主要类型的输入数据,它们产生相似但不相同的输出。这些类的主要目标是从两个不同的源获取数据并将其转换为通用接口,以便在程序的其余部分中使用。
第二组将是外部库的适配器。图书馆已定期更新,我没有理由怀疑这些年来不会继续更新。最有可能的是,每次升级都将与前一次升级非常相似,但可能会进行一些小的更改以支持新的库版本。此级别将负责获取输入,并格式化它们以使用输出类。
最后一节是输出。我不认为这需要多个版本,但是需要至少指定两个不同的输出目录。我怀疑最简单的事情就是在创建输出类时简单地传入输出目录,这是唯一需要的抽象级别。此类将经常更新,但不要求支持多个版本。
答案 0 :(得分:0)
设置如下代码,基本上遵循bridge pattern,但有多个抽象层。
输入类将是抽象。目前获得输出的两种不同方法是两个不同的具体类,如果需要,可以添加更具体的类。
包装器类将是factory pattern。大多数代码在各种实现之间应该是通用的,因此这应该可以很好地处理微小差异。
输出类将作为实现者类的一部分包含在内。没有真正需要的模式,因为这个类只需要一个版本。此外,实现者可能是单身人士。