0

我正在设计一个将在 MVC CMS 中使用的图像缓存系统。图像缓存器的主要目的是修改图像:缩放、裁剪等并将它们缓存在客户端站点中。

我创建了一个与数据库交互的图像缓存模型和映射器,以跟踪图像并了解对它们应用了哪些类型的操作(缩放、裁剪等)。

除了模型和映射器之外,我还创建了一个 ImageCacher 类,API 使用它来管理基于客户端站点传递的参数的模型和图像创建,该类创建图像并生成视图的图像链接.

一位同事认为我需要在模型中包含最后一个类的功能,因为大部分逻辑应该在模型中。

我很不同意他的观点,因为我觉得模型的职责是处理有关在数据库级别缓存的图像的信息,而 ImageCacher 类的职责是创建我们将缓存的 url/图像(保持单一职责原则)。除此之外,我认为模型不应具有与演示相关的功能,例如创建或显示图像。

有人对此有任何见解吗?是否有一种特定的设计模式可以使这种任务划分清晰并且图像缓存器可重用?我应该在模型中添加所有逻辑吗?

谢谢你。

4

1 回答 1

0

IMO 对于一个有问题的结果来说,付出了太多的努力。您正在构建所有逻辑,花费 CPU 和 SQL 资源来找出哪个客户端缓存了哪些图像,而客户端缓存是一种不可靠的存储方式。我不知道您的应用程序的性质,但如果多个客户端使用相同的图像文件(调整大小、裁剪等),那么首先将它们存储在客户端是不合算的。

回覆。您的问题,IMO 模型是存储逻辑的地方,因为它在模型中更容易重用。

于 2010-12-24T18:04:20.340 回答