处理单类库中的多个标准

时间:2009-01-19 01:26:15

标签: dll specifications class-library

我目前正在开发一个项目,该项目将支持多个文件编写规范(想象一下,如果必须支持XML 1.0,XML 2.0,XML 3.0等),称为ADIF。目前有两个标准(版本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/

2 个答案:

答案 0 :(得分:1)

你说你可以实施一个好的入侵层次结构吗?

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

即。您的2.2.2版api只接受2.2.2版本的对象以防止库中出现问题。祝你好运!)

答案 1 :(得分:0)

  

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

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

您可以通过哪些方法将问题分解为更简单的子系统?