【问题标题】:Dealing with multiple standards in single class library在单个类库中处理多个标准
【发布时间】:2010-10-02 03:51:57
【问题描述】:

我目前正在开发一个名为 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/

【问题讨论】:

    标签: dll specifications class-library


    【解决方案1】:

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

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

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

    【讨论】:

      【解决方案2】:

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

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

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

      【讨论】:

        猜你喜欢
        • 2022-01-10
        • 1970-01-01
        • 2014-10-22
        • 2018-05-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-08-22
        • 1970-01-01
        相关资源
        最近更新 更多