1

我想将图像存储在业务对象中。在 MSDN 中,我看到 System.Drawing-namespace 提供了许多 GDI+ 功能等。

是否可以将 Image 存储在业务层的 System.Drawing.Image 类中(“仅”是一个类库),从而也包括对 System.Drawing 的引用?我觉得这样做有点糟糕,因为我似乎在业务代码中有特定于 UI 的引用。此外,代码可能会变得不必要地依赖于平台(尽管这只是理论上的问题,因为我们不是为多个平台开发的)。

如果不正确,哪种类型最适合?

感谢您的任何回复!

马蒂亚斯

4

1 回答 1

2

从您的问题来看,您的业务逻辑层似乎需要以非常低级的方式处理图像(否则,我猜您只是存储图像 URL 或其他东西......)。这将图像/位图的概念直接置于业务逻辑领域,因此它完全可以依赖 System.Drawing 命名空间来实现此目的。

如果你觉得图像在类库中没有位置,那么看看 System.Drawing 本身应该会让你信服:它是类库的一个典型例子(并且是一个非常体面的设计),除了处理之外几乎什么都不做与图像。

它确实与 UI 没有任何关系(Windows.Forms 和朋友处理这些)。此外,System.Drawing 存在于任何安装了 .NET Framework 的系统上,因此不存在依赖性问题。

如果您担心跨平台兼容性,为图像创建一个包装类可以缓解这些问题。但是,由于位图结构本身很可能已经是特定于平台的(例如,除非您注意仅在外部接口上使用 PNG),因此这可能有点过分,因为您增加了复杂性而没有收获。 ..

于 2008-11-03T11:34:24.580 回答