我目前正在开发一个包含多个不同组件的非常复杂的程序,并在不同阶段部署在客户端站点上。发布管理已经到位,但有点繁琐,我需要更改一个相当基本的组件,这将影响将使用它构建的所有其他库。
我的问题是,而不是宣布它是一个重大变化,并强迫所有库更新到下一个版本的新组件,我想我可以使用反射来查看我正在添加的新类存在,如果是这样使用它,否则继续使用旧方法。然后在几个月内#39;时间,我将通过并删除此,并删除旧方法。这意味着处于不同部署阶段的各个客户团队不会突然发现他们必须同时升级所有内容,或者根本不需要升级。
这看起来是否有任何明显的缺点,使用反射来检测版本是否被认为是可怕的做法,或听起来不错?
答案 0 :(得分:1)
事实上,这感觉有些过时,但在你描述的情况下似乎没有其他选择。但是,您也可以尝试以编程方式明确地比较版本号。
答案 1 :(得分:1)
一般来说,在生产中支持多个版本会增加复杂性。通过反射之类的东西隐藏升级不允许向客户正确地传达已发生变化的信息。您可以而且应该尽可能地向客户进行升级。如果你正在慢慢推动你的改变,这很好,但它并没有让你免于沟通的责任。使用反射检测和使用新功能并不是最糟糕的做法。我不认为你应该过分担心使用它。