1
我有一個API,我必須通過包裝提供更高層次,更友好,更簡化的框架。使用繼承或組合爲此,或不同的解決方案?
該API已經被封裝爲與其非託管版本相同。但它有各種不直觀的成員名稱,工作流程等。
我正在使用組合來存儲對基礎類型的引用,這樣我可以按照自己的方式擁有成員。
public class Effect
{
public IEffect {get; private set;}
...
}
但有一點,我開始考慮是因爲原來的C++ API在很大程度上基於繼承和虛基本上轉換和某些功能合併到性能,使用一些其它較低級邏輯具有更高水平的功能性等方法,我應該如何去「暴露」/包裝/鏈接這些?
我應該只是提供其他方法,調用internalType.VirtualMethod()
等?但是,這似乎是行不通的,對吧?
但在另一方面,如果我使用繼承自己喜歡:
public class Effect : IEffect
然後我將所有這些成員以及它的到來怪異,obsolote功能。我仍然可以提供更高級別的功能,但我不想向這些成員展示,因爲很多原因,最簡單的一個就是他們不是.NET。
你對此有什麼建議?
謝謝,但你是怎麼說的?使用組合?因爲我已經在做這個。或者你的意思是別的? – 2011-01-20 01:12:08