首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >实现包含每年更改的标准的类库的最佳方法

实现包含每年更改的标准的类库的最佳方法
EN

Stack Overflow用户
提问于 2009-12-21 21:45:09
回答 6查看 115关注 0票数 3

我想为一些标准创建一个类库。这些标准每年更新一次(不一定每年更新,也可能需要3-4年)。我也想维护较旧的版本。做这件事最好的方法是什么?

目前,我正在考虑以下结构:

代码语言:javascript
复制
StandardName (namespace) --> Year(namespace) --> actual implementation of particular standards Class

这里的问题是,从一年到另一年标准的改变也需要将所有类复制到新的命名空间,尽管其中一些可能根本不会改变。有什么有效的方法吗?还是我错过了什么?

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2009-12-21 21:57:54

我认为这里有一个合适的封装是关键。

标准的某些部分在不同版本之间必须保持不变,因此实现的某些部分应该或多或少是稳定的。

如果你知道哪些部分最有可能保持不变,那么你可以特别注意这些部分的封装,这样你就可以最大限度地提高可重用性。另一方面,对于更有可能被提炼的部分,你应该尽可能地抽象…特别是如果规范一定要扩展的话(增加一些功能,但保持旧的不变)。

不要害怕在不同版本之间进行重构...你可能在第一次就会弄错。重构你的设计,改进它,改变它,而不是从头开始或者复制粘贴到新的实现中。随着版本的发展,您将能够更好地了解您的规范是如何演变的。

票数 1
EN

Stack Overflow用户

发布于 2009-12-21 21:55:40

根据你的标准,OO能不能很好地处理这个问题。最基本的支持是您的类需要实现的接口。这意味着除非你开始在你的实现中使用委托,否则不能重用。

或者,如果标准只会增长(即旧功能永远不会改变),那么您可以通过继承来完美地支持这一点。

在现实世界中,您将混合使用这三种方法。通用代码将放入基类和委托中,因此您只需复制几行代码即可获得大部分功能。然后从头开始或通过覆盖现有实现来实现其余部分。

票数 1
EN

Stack Overflow用户

发布于 2009-12-21 22:27:13

需求问题:

  • 标准是否向后兼容?
  • 该标准的多个版本是否必须能够在同一应用程序中共存?

如果您的标准是向后兼容的,则可以在实现新标准时继承旧版本的类。

如果不是,但版本不一定要共存,只需按您认为合适的方式更改旧的源代码,并每年发布一个新版本。

如果它不是向后兼容的,并且几个版本必须共存,那么可能需要名称空间分离。当然,如果您的标准使用单例,这可能会带来问题,每个版本都会有自己的版本,这可能会超出预期。

底线:如果可能的话,我会避免名称空间分离,但您可能需要它。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1940171

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档