我应该使用什么设计模式?使用弹簧框架

时间:2010-12-31 10:16:33

标签: java spring design-patterns spring-mvc spring-aop

我们正在创建拍卖网站。有不同类型的拍卖。根据拍卖类型,获胜者声明已经完成。

例如: - *在一种类型的拍卖中: - 出价更高的用户。 *其他类型: - 最低出价获胜的用户。 *某种类型: - 所有者决定胜利者。 *在某些类型: - 前10名竞标者赢得拍卖。

似乎策略模式非常适合设计决定“拍卖获胜者”的模块。

所以

根据“拍卖类型”,系统将选择适当的算法来决定获胜者。将提供拍卖类型所需的所有参数以便选择获胜者。 我正在考虑使用策略模式(可能采用AOP方式)来获取winsdeclare模块。

该应用程序基于SpringFramework,任何人都可以建议我一个优雅的设计来处理上面提到的问题。 我应该使用哪种模式?我应该去AOP吗?

如果需要,我可以提供更多详细信息。

提前谢谢。

3 个答案:

答案 0 :(得分:3)

这是一个广泛的问题,我的答案是尝试并专注于使用简单的面向对象结构正确建模问题,而不是“适合这里的模式”。模式最有可能出现,你不需要立即命名。

另外,如果你是Spring的新手,我建议忘记AOP。它现在对你没用。此外,使用AOP也不会有帮助。

p.s策略似乎很好。

答案 1 :(得分:3)

对于这个问题,没有任何特定于Spring的内容。是的,策略模式可能是正确的选择。

创建服务界面以确定拍卖获胜者并创建其一个或多个实施。在您的业务代码中,始终引用服务接口,而不是实现类,这样您就可以轻松切换实现(使用或不使用Spring)。 (阅读Joshua Bloch的Effective Java以更好地理解使用接口编程)

忘掉Spring AOP。它解决了许多问题,但不是你的问题。您的问题是定义应用程序的核心模块并将它们连接在一起(通常使用Spring或其他DI容器完成)

基本上,当您创建服务界面时,您需要决定“这件事应该做什么?”当你实现界面时,你决定“这件事应该怎么做?”

答案 2 :(得分:0)

您可以使用以下方案:

一个主bean,有一个bean列表。每个bean代表一个流程(“最高出价”,“最低出价”等)。让我们称它们为flowBeans 每个flowBean都应该有一个或多个choiseBeans。
choiseBean根据拍卖的输入决定flowBean是否应该执行。

很抱歉无法提供示例。

PS:除了我的建议,我同意cherouvim!