当它们包含大量的行动

控制器可能变得很大,难以处理。这是在现实世界中使用的显著问题,如果是的话是什么策略来减轻它(或者是不够好,只是保持动作倒计时每个控制器)?

关我的头顶部我可以根据一些有意义的启发式设想控制器卸载逻辑来在其它类型的动作实现方式中,进行分组。

有帮助吗?

解决方案

在我的经验,这种情况多发生在我不应用“REST”刀积极就够了。有时比喻是不是我们思考一个问题的方式是一致的;例如,人们很容易认为“登陆”是“账户”的操作,但如果你申请的REST刀,你就会意识到,登录真是“开始一个新的会话”和您可以通过应用“新颠倒理念“(或创建)一个SessionController行动。然后,你必须负责创建和销毁会话(登录和注销)一个小的控制。

我敢肯定,有几个人会不喜欢被弄脏的REST水域认证的凌乱概念,所以让我们来看看一个更明显的例子。我可以有一个博客帖子的实体,它可以有一堆的意见。而不是在BlogPostController动作AddComment,我有通常的创建/编辑/删除博客帖子方法,以及另一控制器CommentController其新/创建操作期望BlogPostId,并实现创建/编辑/删除的方法。

我碰到的地方,我需要非REST样作用某些情况下,诸如“从CSV文件导入X的列表”,每个人属于于Y;在“名单”是不能作为域名的概念非常重要,因为我真的只是想添加到XES的现有集合。在这种情况下,我把我认为要增加一个“进口”行动,我XController的稍微难看的做法。该代码是我的任何控制器的凌乱的代码,我会倾向于因素它弄成与多个内含责任(一XImporter类,也许),但现在它“作品”。我敢肯定有人比我更聪明的将有一个更好的解决方案。

所以,我的观点是这样的:如果你有大量的未RESTy行动,有一种代码味道的;也许你是不是建模你正确地控制什么。但是,如果你说的,1-3 unRESTy行动,并试图重新思考这个问题不会导致你在正确的方向,也许是不值得担心。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top