我正在设计一个将在 MVC CMS 中使用的图像缓存系统。图像缓存器的主要目的是修改图像:缩放、裁剪等并将它们缓存在客户端站点中。
我创建了一个与数据库交互的图像缓存模型和映射器,以跟踪图像并了解对它们应用了哪些类型的操作(缩放、裁剪等)。
除了模型和映射器之外,我还创建了一个 ImageCacher 类,API 使用它来管理基于客户端站点传递的参数的模型和图像创建,该类创建图像并生成视图的图像链接.
一位同事认为我需要在模型中包含最后一个类的功能,因为大部分逻辑应该在模型中。
我很不同意他的观点,因为我觉得模型的职责是处理有关在数据库级别缓存的图像的信息,而 ImageCacher 类的职责是创建我们将缓存的 url/图像(保持单一职责原则)。除此之外,我认为模型不应具有与演示相关的功能,例如创建或显示图像。
有人对此有任何见解吗?是否有一种特定的设计模式可以使这种任务划分清晰并且图像缓存器可重用?我应该在模型中添加所有逻辑吗?
谢谢你。