0

我目前正在开发一个名为 ADIF 的项目,该项目将支持多种文件编写规范(想象一下,如果您必须支持 XML 1.0、XML 2.0、XML 3.0 等)。目前有两个标准(1.0 版和 2.2.2 版),它们都在商业上使用并且仍然被大量使用。

规范版本 2.2.2 包含了版本 1.0 的大部分内容,但存在一些细微差别,排除了一些继承和其他 OOP 工具。

您将如何组织您的项目以支持旧版本,同时继续跟上新标准。

  • 单个类库中的命名空间(Standard.Version1、Standard.Version222、Standard.Version223(下一个版本?)等)?看起来很马虎
  • 在同一解决方案中为每个单独的类库(Version222.dll、Version223.dll 等)?显得过分了。
  • 等等

我确实打算实现一些代码,这些代码将从一个版本转换为另一个版本。

基本上,我正在寻找一些关于如何最好地组织此类项目的建议。

http://www.adif.org/

4

2 回答 2

1

您说没有可以实现的良好继承层次结构?

如果是这样,我建议您遵循库的命名空间技术,它可以使用 dll 中可能的任何共性来减少自己的工作量。拥有两个 api 将使您的测试变得更加容易,并且还可以很好地处理有关版本之间差异的问题。

即您的 2.2.2 版 api 将只接受 2.2.2 版的对象以防止库中出现问题。

于 2009-01-19T01:53:38.470 回答
0

规范版本 2.2.2 包含了版本 1.0 的大部分内容,但存在一些细微差别,排除了一些继承和其他 OOP 工具。

对于 OOP,对象组合可能是比 IMO 过度使用的继承更强大的工具。

您能找到哪些方法将问题分解为更简单的子系统?

于 2009-01-19T02:00:36.303 回答