处理程序,管理器和控制器之间的区别


21

命名类“ Handler”,“ Manager”或“ Controller”之间有什么区别吗?IE: ,PurchaseManager,。PurchaseHandlerPurchaseController

这些充分表达了相同的含义,还是它们之间有明显的区别?

如果没有与语言无关的答案,请考虑将Java作为语言。


1
这里更多的上下文将有所帮助。许多(很多!)框架对区别有非常清晰的定义。但是,这些词背后没有通用定义。您在什么环境下工作?您正在使用什么框架?您使用什么语言?
S.Lott

澄清的语言。
hpique 2011年

Answers:


15

通常,“控制器”是用户界面组件和模型(例如,Purchase)之间的接口。控制器应该是瘦类,除了将用户界面事件映射到模型函数外,仅需做些其他事情。

“经理”是代码的味道。购买应自行管理,也可以由所属类(如供应商或买方)进行管理。

“处理程序”通常是包装在对象中的单个函数。在没有一流功能的传统语言中进行编程时,需要这些。


尽管我也不太喜欢“经理”的概念,但我认为不让其处理自己的业务逻辑的理由是程序员希望将bean / pojo / dto与复杂的业务操作分开。
Sridhar Sarnobat

1
我从语言不可知论的角度同意Manager的观点,但我想补充一点,在某些情况下,Manager可能是正确的术语。例如,可以从协议的角度谈论管理者。对于SNMP,您有一个“管理”一组代理的管理。这是在这种情况下使用的正确术语。但是,这确实证明了“ Manager”的自发使用。
帕特里克

7

虽然我的答案不是基于定义的,但我将标为“控制器”的内容视为排他性实现,而将“处理程序”的内容视为包含性。我希望只能看到一个“ PurchaseController”的存在和一个“ PurchaseHandler”的多个可能版本。

我认为Controller的另一个通用名称是“经纪人”-稍微改变了它的观点。


谢谢您的定义。您已经在几行中投入了很多知识。
acearch
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.