好的,我使用三层构建应用程序来操作业务逻辑。
1)第一层解决运输任务。该层发送请求,获取响应并处理网络错误。传输层调用远程API方法并准备使用内部应用程序的数据。
2)第二层是Service
。服务是一类(或一组函数),用于处理来自API的特定数据,以根据业务需求对其进行组织。例如,ProductService
获取产品列表,然后将每个产品的规范化为对象并进行排序收集。
3)第三层是Controller
。该图层是MVC
图案的经典图层。它引用数据服务并将其传递给View
层。
结果我们得到了互动方案:
Controller => Service => Transport
很明显,这种方案需要将传输层的结果存储到缓存服务(例如memcached)。因此,有必要添加第四层 - Cache
。
所以在这个方案的哪个位置应该位于Cache
层,以及上面三层中的哪一层应该控制它(说从缓存中获取数据或从API获取数据,使缓存无效等)?< /强>
我的问题是概念问题,不需要指示 具体的技术,但我想在上下文中得到答案 PHP和Symfony 2/3框架。
答案 0 :(得分:1)
我会尝试以通用的方式回答。 当您缓存某些数据时,您必须做两件事
因此,通常系统会有一个公共层来读取和写入数据库,并且缓存是在该层周围完成的。
在您的情况下,似乎服务层是操纵对象的层,因此应该是应该实现缓存的层。