2008-11-03 124 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