我一直对我现在必须维护的一些应用程序非常恼火,这些应用程序坚持使用类代理而不是通过接口代理。更具体地说,我有代理的服务层类,但我不能让它们成为最终的(即使它们应该是)因为某些原因有人决定它们应该由实际的类代理,而不是通过接口代理(尽管所有这些类中有接口无论如何)。
除了不必创建接口之外,是否有任何真正的理由通过目标类代理而不是基于Spring的AOP配置中的目标接口的代理?
答案 0 :(得分:4)
只有你真的希望班级不要改变;通过接口代理将变得更加强大,因为它更灵活,但如果你真的想把事情锁定到单个实现,那么按类进行代理就是你要做的事情。我可以想象一种情况,人们可能希望依赖于专有的类解决方案而不是允许任何接口实现者可代理,但这些对我来说似乎是边缘情况;我通常假设使用界面。