使用Java反射的2个对象之间的差异:如何?

mad*_*ada 7 java

对于审计日志,我需要知道2个对象之间的差异.

那些objets可能包含其他objets,list,一组对象,因此如果需要,所需的差异可能是递归的.

是否已经使用反射(或其他)的api?

提前致谢.

问候

小智 2

这是一个很难通用地尝试解决的问题。您可以考虑将访问者模式(允许您向对象图添加功能)与责任链模式(允许您将执行任务的责任分解为多个对象,然后将请求动态路由到对象)配对。正确的处理程序。

如果这样做,您将能够在每种类型的基础上生成简单、特定的微分逻辑,而无需使用单个庞大的类来处理所有微分任务。将处理程序添加到树中也很容易。

最好的部分是,您仍然可以在“平面”对象(不是集合且基本上仅具有属性的对象)的责任链中拥有一个链接,这也是反射对您最有帮助的地方。如果您的“包罗万象”案例使用简单的基于反射的比较,而您的“特殊”案例处理列表、字典和集合等内容,那么您将拥有一个灵活、可维护、廉价的解决方案。

欲了解更多信息: