Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 我应该使用什么设计模式?使用spring框架_Java_Spring_Design Patterns_Spring Mvc_Spring Aop - Fatal编程技术网

Java 我应该使用什么设计模式?使用spring框架

Java 我应该使用什么设计模式?使用spring框架,java,spring,design-patterns,spring-mvc,spring-aop,Java,Spring,Design Patterns,Spring Mvc,Spring Aop,我们正在创建拍卖网站。有不同类型的拍卖。根据拍卖的类型,将进行赢家申报 在一种拍卖中:-出价较高的用户获胜。 *在其他类型:-最低出价的用户获胜。 *在某些类型中:-所有者决定胜利者。 *在某些类型中:-前10名投标人赢得拍卖 看来,策略模式是设计决定“拍卖获胜者”的模块的最佳匹配 所以 根据“拍卖类型”,系统将选择合适的算法来决定胜利者。将提供拍卖类型选择胜利者所需的所有参数。 我正在考虑使用策略模式(可能是AOP方式)来激活winnerDeclare模块 这个应用程序是基于SpringFra

我们正在创建拍卖网站。有不同类型的拍卖。根据拍卖的类型,将进行赢家申报

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

看来,策略模式是设计决定“拍卖获胜者”的模块的最佳匹配

所以

根据“拍卖类型”,系统将选择合适的算法来决定胜利者。将提供拍卖类型选择胜利者所需的所有参数。 我正在考虑使用策略模式(可能是AOP方式)来激活winnerDeclare模块

这个应用程序是基于SpringFramework的,有人能给我推荐一个优雅的设计来处理上面提到的问题吗。 我应该使用哪种模式?我应该去AOP吗

如果需要,我可以提供更多细节


提前谢谢。

这是一个广泛的问题,我的答案是尽量集中精力使用简单的面向对象结构正确地建模问题,而不是“哪种模式适合这里”。模式很可能会出现,您不需要立即命名它们

此外,我建议您忘记AOP,以防您刚接触Spring。现在对你没有帮助。此外,为了使用AOP而使用AOP也不会有帮助


p、 这是一个宽泛的问题,我的答案是尽量集中精力使用简单的面向对象结构正确地建模问题,而不是“哪种模式适合这里”。模式很可能会出现,您不需要立即命名它们

此外,我建议您忘记AOP,以防您刚接触Spring。现在对你没有帮助。此外,为了使用AOP而使用AOP也不会有帮助


p、 s的策略在这里似乎很好。

您可以使用以下场景:

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

很抱歉,无法提供示例。




PS:除了我的建议,我同意切鲁维姆

您可以使用以下场景:

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

很抱歉,无法提供示例。




PS:除了我的建议,我同意切鲁维姆

对于这个问题,Spring并没有什么特别之处。是的,战略模式可能是正确的选择

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

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


基本上,当您创建一个服务接口时,您需要决定“这个东西应该做什么?”当您实现这个接口时,您需要决定“这个东西应该如何做?”

对于这个问题,Spring并没有具体的内容。是的,战略模式可能是正确的选择

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

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

基本上,当您创建服务接口时,您需要决定“这个东西应该做什么?”当您实现接口时,您需要决定“这个东西应该如何做?”