代码之家  ›  专栏  ›  技术社区  ›  Matthias Meid

系统。绘图。Business Objects中的图像?

  •  1
  • Matthias Meid  · 技术社区  · 16 年前

    我想将图像存储在业务对象中。在MSDN上,我看到了这个系统。绘图命名空间提供了许多GDI+功能等。

    将图像存储在系统中可以吗。绘图。业务层中的映像类(这是一个“仅”的类库),因此包含对System的引用。也画画?我觉得这样做有点不好,因为我在业务代码中似乎有UI特定的引用。此外,代码可能会变得不必要地依赖于平台(尽管这只是理论上的问题,因为我们不为多个平台开发)。

    如果这样不对,哪种类型最适合?

    感谢您的任何回复!

    马蒂亚斯

    1 回复  |  直到 15 年前
        1
  •  2
  •   mdb    16 年前

    从你的问题来看,很明显,你的业务逻辑层需要以一种非常低级的方式处理图像(否则,我想你只是在存储图像URL或其他东西……)。这将图像/位图的概念完全置于业务逻辑领域,因此它完全可以依赖系统。为此目的绘制命名空间。

    如果你觉得图像在类库中没有位置, one look System.Drawing itself 应该说服你:这是一个类库的典型例子(也是一个设计得很好的类库),它除了处理图像外几乎什么都不做。

    这真的与UI无关(Windows.Forms和朋友会处理这些)。此外,系统。任何具有的系统上都存在绘图。NET Framework已安装,因此不存在依赖关系问题。

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