2

ラッパークラスは、インスタンスクラスにする必要がありますか、それとも共有メンバーを持つクラスにする必要がありますか?サードパーティライブラリの周りにラッパークラスを作成し、2つの関数だけを公開し、サードパーティクラスのすべての複雑さを隠す必要があります。

4

2 に答える 2

3

ここに簡単なルール。サードパーティライブラリのクラスがインスタンスクラスの場合はラッパーをインスタンスクラスにします。サードパーティのクラスが静的クラスの場合は、ラッパーを静的クラスにします。ラッパークラスの考え方は、一般的に構造を模倣することですが、単に複雑さ/高度な/不要な機能を隠すことです。

私が考えることができる唯一の例外は、サードパーティライブラリの設計が不十分であり、インスタンスクラスが実際には静的クラスとして存在する必要がある場合です。もちろん、ラッパー関数が新しいクラスをインスタンス化するようなレベルで機能をラップしている場合は、実際には静的クラス内で宣言する必要があります。

于 2009-06-22T20:27:46.400 に答える
1

それは本当にサードパーティのライブラリに依存します...別々の状態を持つlibの複数の別々のインスタンスを持つことが理にかなっている場合は、インスタンスアプローチが適しています。ステートレスメソッドの場合は、静的/共有APIが適切です。

インターフェイスを実装するために必要な場合を除き、その場合インスタンスベースである必要があります。

于 2009-06-22T20:26:57.947 に答える