对于审计日志,我需要知道2个对象之间的差异.
那些objets可能包含其他objets,list,对象集,因此如果需要,所需的差异可能是递归的.
是否已经使用反射(或其他)api?
提前致谢.
问候
解决方法
尝试解决这个问题是一个非常艰巨的问题.您可以考虑将访问者模式配对,该模式允许您使用责任链模式向对象图添加功能,这样您就可以将执行任务的责任分解为多个对象,然后将请求动态路由到正确的处理
如果你这样做,你将能够在每个类型的基础上生成简单,特定的差异化逻辑,而无需一个处理所有差异化任务的单一,庞大的类.将处理程序添加到树中也很容易.
最好的部分是你仍然可以在你的“责任链”中找到“扁平”对象(不是集合的对象,基本上只有对象)的链接,这也是反射对你最有帮助的地方.如果你“全能”案例使用简单的基于反射的比较,并且你的“特殊”案例处理列表,词典和集合等事情,那么你将拥有一个灵活,可维护,廉价的解决方案.
欲了解更多信息:
> http://www.netobjectives.com/PatternRepository/index.php?title=TheChainOfResponsibilityPattern
> http://www.netobjectives.com/PatternRepository/index.php?title=TheVisitorPattern