我发现自己需要将一些功能移入服务层。在这个特定的例子中,它涉及到与zend-paginator相关的示例。
在这个示例中,服务层只是控制器和模型之间的一个中间阶段。看起来这是它的预期角色,在某些情况下似乎很有道理。
但这引发了一些问题。
首先,我是否可以轻松地将示例服务代码移动到控制器中而不会受到任何惩罚?这样做是否能通过减少一层代码来使我受益?
假设将代码移动到服务层有实际好处,那么我的映射器交互的其余部分会发生什么?控制器访问服务层执行某些任务,而映射器执行其他任务吗?还是服务层成为所有映射器交互的代理?
对于诸如从表单创建新行之类的事情,似乎服务层并没有增加任何价值,因此它将只是在服务层水平上进行传递函数。
在这个示例中,服务层只是控制器和模型之间的一个中间阶段。看起来这是它的预期角色,在某些情况下似乎很有道理。
但这引发了一些问题。
首先,我是否可以轻松地将示例服务代码移动到控制器中而不会受到任何惩罚?这样做是否能通过减少一层代码来使我受益?
假设将代码移动到服务层有实际好处,那么我的映射器交互的其余部分会发生什么?控制器访问服务层执行某些任务,而映射器执行其他任务吗?还是服务层成为所有映射器交互的代理?
对于诸如从表单创建新行之类的事情,似乎服务层并没有增加任何价值,因此它将只是在服务层水平上进行传递函数。
使用它来完成某些任务似乎会在以后使事情变得更加复杂,而将其用作代理似乎是故意引入代码复制和复杂性。
任何关于“最佳实践”的澄清都将非常有帮助。