首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在AOP中实现策略模式

如何在AOP中实现策略模式
EN

Stack Overflow用户
提问于 2009-10-22 11:31:39
回答 2查看 1.6K关注 0票数 2

谁能告诉我如何在AOP中实现策略模式?

使用Spring-AOP或AspectJ的示例将非常有用。

EN

回答 2

Stack Overflow用户

发布于 2009-10-22 11:41:51

我发现的最简单的方法是让你的类实现一个空接口。

然后使用AspectJ将实现插入到接口中。

这样,如果您需要更改算法,只需使用不同的方面,问题就解决了。

要做到这一点,您可以查看how to use inter-type上的手册。

This article有一些将方法注入接口的很好的例子。

这不是实现策略模式,但基本概念是相同的,这使得从一个算法切换到另一个算法很容易,而不需要更改代码的任何其他部分。我能看到的唯一另一种方法是使用DI,只需注入一个新的具体类,每个类都有相同的Strategy接口,但这是不可能的。

下面是一些链接,展示了使用AOP可以做些什么:

除了一些基本的横切关注点之外,AspectJ还可以用于更多方面。通过使用AspectJ,大多数GoF设计模式都可以很容易地实现或淘汰。

票数 5
EN

Stack Overflow用户

发布于 2009-10-22 13:57:35

我想你把两件事搞混了。

AOP是关于围绕“真正的”代码实现不同的方面。比如日志记录和验证。日志记录本身可以通过使用DI容器(如spring提供的)来实现,以便真正将日志记录委托给正确的实现(策略)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1604889

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档