命令模式: - 请求作为命令包装在对象下,并传递给调用者对象。 Invoker对象查找可以处理此命令的相应对象,并将该命令传递给执行该命令的相应对象。
考虑一个员工管理系统,HR人员可以在其中创建/读取/更新/删除员工。在我的职业生涯中,我一直设计这个用例类似
Request from browser -> EmployeeController -> EmployeeService -> EmployeeDao
EmployeeService.java将包含将从控制器调用的所有创建/读取/更新/删除操作
在阅读Command模式后,我看到了另一种方法,即控制器将作为Invoker调用适当的CommandHandler,如DeleteCommandHandler / UpdateCommandHandler / CreateCommandHandler / ViewCommandHandler
应用Command设计模式在这里有意义吗?
答案 0 :(得分:1)
命令设计模式将提供良好的间接层,并且不必仅限于CRUD命令。可能是服务层更合适的Invoker as Command对象可以在层内传递以便更好地使用。命令对象使用 Receiver 对象(以处理程序的形式)预编程,该对象能够处理请求。增加的优势是审计命令(命令层操作,如日志记录),因为它们是独立于从调用它们的位置调用的。