2009-06-22 87 views
2

包裝類應該是實例類還是具有共享成員的類?我需要圍繞第三方庫創建一個包裝類,只展示2個函數,並隱藏第三方類的所有複雜性。.NET包裝類

+2

「它取決於」。包裝的方法實例方法?在隱藏複雜性的過程中,你需要維護狀態嗎? – 2009-06-22 20:26:36

回答

3

簡單的規則在這裏。如果第三方庫的類是實例類,讓你的包裝一個實例類;如果第三方中的類是靜態類,請將其包裝爲靜態類。包裝類的概念通常是模仿結構,但只是隱藏複雜性/高級/不需要的功能。

,而我能想到的唯一的例外是,第三方庫設計不當的情況下,和一個實例類應該真的存在一個靜態類。當然,如果你是在這樣一個水平包裹功能,你的包裝函數實例化一個新的類,它應該是一個靜態類內聲明。

1

這真的取決於第三方庫...如果是有意義的有獨立的國家的lib的多個獨立實例,則實例方法是合適的。如果它是無狀態方法,那麼靜態/共享API將是適當的。

除非您需要它來實現一個接口,在這種情況下,它的已將設置爲基於實例。