2008-11-03 64 views
1

我想将图像存储在业务对象中。在MSDN中,我看到System.Drawing命名空间提供了大量的GDI +功能等。Business Objects中图像的System.Drawing.Image?

可以将图像存储在业务层的System.Drawing.Image类中(这是一个类库“only “),因此也包含对System.Drawing的引用?我稍微感觉有点不好,因为它好像我在业务代码中具有UI特定的引用。此外,代码可能会变得不必要的依赖于平台(尽管这只是理论上的问题,因为我们不针对多个平台开发)。

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

谢谢你的回复!

马蒂亚斯

回答

2

从你的问题,似乎显而易见的是,你的业务逻辑层需要在一个相当低的水平的方式(否则,我猜你只是存储图像的URL或东西来处理图像... )。这将图像/位图的概念直接放在业务逻辑范围内,所以它完全可以依赖System.Drawing命名空间来达到此目的。这几乎没有别的不是处理这是一个类库的一个最好的例子(和一个非常体面的设计,一个在那个):

如果你觉得图像在一个类库没有地方,one look System.Drawing itself原本应该说服你图片。

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

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

+0

非常感谢您的回复!我认为没有什么可添加的,非常好:) – 2008-11-03 12:52:02