sách gpt4 ai đã đi

aop - 为什么基于纯继承的代理在 AoP 中不好

In lại 作者:行者123 更新时间:2023-12-04 19:30:06 26 4
mua khóa gpt4 Nike

我在同一类中的方法之间进行方法调用并应用事务建议时遇到问题。

Spring Framework .NET 文档声明它支持基于组合和继承的代理,并且您可以强制 Spring 创建要实例化的基于继承的代理(没有目标的代理)。

然而,事实证明即使是“基于继承的代理”也不是他们所声称的那样。他们确实继承了目标类而不是它的接口(interface),但他们仍然使用目标对象。这导致了这样一个事实,即在同一类建议的方法之间的调用不适用。

诚然,Spring 可以使用 InheritanceBasedAopConfigurer 做一些努力来做到这一点,但您仍然必须列出要应用它的对象和要应用到它们的建议。

为什么 Spring 会千方百计避免真正基于继承的代理?我缺少什么反模式?

1 Câu trả lời

我可以看到多种原因:

1) 实现更复杂。 IoC 容器管理实例,要应用基于纯继承的代理,您需要处理类型。这就是“InheritanceBasedAopConfigurer”的作用:它在容器初始化之前更改类型。

2) 如果您希望 AOP 工作,您需要将您的方法标记为虚拟方法。这不直观。

3) 基于组合的代理强制通过接口(interface)进行设计,这是一种很好的做法。

关于aop - 为什么基于纯继承的代理在 AoP 中不好,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8932396/

26 4 0
行者123
Hồ sơ cá nhân

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com