2014-05-21 47 views
2

我目前正在研究一个非常复杂的程序,它有多个不同的组件,并且在不同阶段部署在客户端网站上。发布管理已经到位,但有点复杂,我需要改变一个相当基本的组件,它将影响所有其他将随它构建的库。使用反射来确定调用方法是不好的做法吗?有没有更好的办法?

我的问题是,而不是宣布它是一个突破的变化,并迫使所有图书馆更新到下一个版本的新组件,我想我可以使用反射来看看我添加的新类是否存在如果这样使用它,否则继续使用旧的方法。然后在几个月的时间内,我会通过并删除这个,并删除旧的方法。这意味着处于不同部署阶段的各个客户团队不会突然发现他们必须同时升级所有内容,或者什么也不是。

这个问题似乎像它不会有什么明显的缺点,是它认为可怕的做法是使用反射来“检测版本”,或者这听起来好不好?

回答

1

事实上,这感觉有点hackish,但似乎是在你所描述的情况没有其他选择。但是,您也可以尝试以编程方式明确比较版本号。

1

一般来说生产支持多个版本增加了复杂性。通过反思等方式隐藏升级不允许与发生更改的客户进行适当的沟通。您可以也应该尽可能地向客户进行升级。如果您正在慢慢地将您的更改缓慢进行,这并不会让您摆脱沟通的责任。使用反射来检测和使用新功能并不是最糟糕的做法。我认为你不应该过度使用它。

相关问题