多个控制器适用于spring框架中的一个实体

时间:2015-06-14 01:49:20

标签: spring spring-mvc

我开始开发使用spring框架的网站。我有三个控制器。有newCustomerControllereditCustomerControllerdeleteCustomerController。这些控制器映射到视图用于创建更新和删除,但我只创建customer

所以,我想知道。像这样声明控制器是合适的。

谢谢

2 个答案:

答案 0 :(得分:2)

这个问题的答案是主观的,也许是https://softwareengineering.stackexchange.com/的主题。但是,我想发表一些与之相关的问题。

有一些原则试图指导开发人员在考虑设计类时如何取得良好的平衡。其中之一是Single responsibility principle

  

在面向对象编程中,单一责任原则   说每个班级都应该承担一个责任   责任应完全由班级封装。所有的   服务应与该责任严格一致

更有吸引力的解释是

  

一个类或模块应该只有一个改变的原因。

然而,它仍然经常难以正确地解释它。

尽管如此,Spring为你提供了手段(将这种说法视为诗意的解释自由)。 拥抱基于构造函数的依赖注入。有quite a few reasons为什么你应该考虑基于构造函数的依赖注入,但是与你的问题有关的部分在博客的引用中得到了解释

  

我得到的一个经常遭遇的争论是:“构造者只是过于冗长   如果我有6或7个依赖项。只有字段,这很好“。   真棒,你有效地解决了一个明确的指标   你写的代码太过分了。数量增加了   一个类型应该受到伤害的依赖关系,因为它会让你思考   是否应该将组件拆分为多个组件。

换句话说,如果你坚持使用基于构造函数的注入,并且你的构造函数变得有点难看,那么该类很可能做得太多而你应该考虑重新设计。

如果您的操作是逻辑整体的一部分(如CRUD操作),它们使用相同的依赖关系(现在通过计数和注入的deps的类型“可测量”)没有明确的想法可以导致操作彼此独立地发展,而不是没有理由拆分成单独的类/组件。

答案 1 :(得分:0)

如果为nums类定义一个控制器应该更好,在该类中,您应该拥有与客户操作相关的所有方法(编辑,删除,创建和读取)。