gpt4 book ai didi

model-view-controller - Play Framework Controller 中的业务方法

转载 作者:行者123 更新时间:2023-12-04 08:24:51 26 4
gpt4 key购买 nike

有人可以解释一下是否有可能在 playfamewok 的控制中使用 pected 的 pivate 方法,除了:

public static void method-action-name() {}



例如,如果我有这样的方法:

protected static int doSomeWork() {}



并且此方法将在 中调用方法 Action 名称 ()..
public static void method-action-name() {
...
int resul = doSomeWork();
...
}

我不想有长的 Action 方法,所以我想把它拆分成更小的,然后在其他 Action 方法中重用它。

我的意思是可以(从playframework的角度来看)在 Controller 端使用这种方法而不是在域类中使用它们吗?例如,在 Spring Framework 中,我们为此使用 BP(业务流程)bean。

可以在 playframework Controller 中为业务方法使用这样的辅助方法吗?

有答案和评论后添加:
例如,如果我有 SearchController 类,那么对于该类来说,拥有像 这样的方法会很好。 preSearch1() , preSearch2() 什么 搜索() 方法会使用,但如果我将这些方法 (1,2) 移动到另一个类,那么它应该是名称类似于 的类搜索助手 然后?在名为 的包中/src/helpers ..不是很好,因为它们也与搜索有关。但也许然后进入 /src/bp/SearchBP (bp=业务流程)。然后在 Controller /搜索 我用 /bp/搜索BP 使用带有 .save() DAO 方法的模型对象(SearchBP 可以使用域方法,搜索类也可以使用域方法)

这里的问题是:什么类 ant 包对这些方法比较好? (我只是在示例中看过它——总是非常简单地使用使用域对象的 Controller ,这就是我问的原因)

最佳答案

是的你可以。 Controller 是普通的类,你可以添加任何你想要的。可能不建议用辅助方法将它们弄乱,我个人会将它们移到另一个类,但你可以按照你说的去做。

编辑答案:

包的名称是“无关紧要的”,不会改变太多:)。您可以将它们放在 controllers.support.search 下,这意味着 controllers.support 是一个带有帮助类的包,并且子包搜索包含与搜索相关的帮助类和方法。

一种替代方法(我更喜欢)是在“服务”包中为此创建一个服务层。您似乎来自 Spring 背景,因此对您来说应该很自然。这些服务根据需要在 Controller 中实例化,或者可能只是通过静态方法使用,并执行主要业务逻辑。这样 Controller 只处理“更高级别”的逻辑。

另一种选择是将尽可能多的逻辑移动到模型中(避免使用 Anemic Domain Model),并使用 Controller 中的模型类。

作为开发中的大多数决策,哪个更好取决于您的经验、代码库中可能的影响/限制、项目中的实践……无论如何,您总是可以重构。只需选择您更习惯的一种(它似乎是服务方法)并编码即可:)

关于model-view-controller - Play Framework Controller 中的业务方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5935772/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com