2011-01-20 18 views
1

我有一個API,我必須通過包裝提供更高層次,更友好,更簡化的框架。使用繼承或組合爲此,或不同的解決方案?

該API已經被封裝爲與其非託管版本相同。但它有各種不直觀的成員名稱,工作流程等。

我正在使用組合來存儲對基礎類型的引用,這樣我可以按照自己的方式擁有成員。

public class Effect 
{ 
    public IEffect {get; private set;} 
    ... 
} 

但有一點,我開始考慮是因爲原來的C++ API在很大程度上基於繼承和虛基本上轉換和某些功能合併到性能,使用一些其它較低級邏輯具有更高水平的功能性等方法,我應該如何去「暴露」/包裝/鏈接這些?

我應該只是提供其他方法,調用internalType.VirtualMethod()等?但是,這似乎是行不通的,對吧?

但在另一方面,如果我使用繼承自己喜歡:

public class Effect : IEffect 

然後我將所有這些成員以及它的到來怪異,obsolote功能。我仍然可以提供更高級別的功能,但我不想向這些成員展示,因爲很多原因,最簡單的一個就是他們不是.NET。

你對此有什麼建議?

回答

1

編寫一個包裝類。從長遠來看,你會很高興你做到了。

+0

謝謝,但你是怎麼說的?使用組合?因爲我已經在做這個。或者你的意思是別的? – 2011-01-20 01:12:08

相關問題