2010-12-15 4 views
2

通常、レガシーコードをテスト可能にするために行われます。例えば、スタティックメソッドを呼び出すインスタンスを作成するパターンの名前

int importantNumber = DataAccess.LoadValue(); 

のような静的呼び出しの負荷があるかもしれません。そして、私ができる

public int LoadValue(){ 
    return DataAccess.LoadValue(); 
} 

ように私は、インターフェイスの後ろに通常はこれらを呼び出すためにインスタンス化することができるクラスを作成しますDIなどを使用して元の通話と置き換えてください

int importantNumber = _dataAccessInstance.LoadValue(); 

このパターンの名前はありますか。私は 'アダプター'を考えていましたが、それはそれよりも具体的なようです。

+0

と別のオブジェクトへの代理として機能し、余分な機能を

を追加しません。 –

+0

それともファサードですか? –

+0

私はそれをObject Oriented Wrapperと呼んでいます。とにかく、名前には何がありますか? :P –

答えて

3

プロキシ

プロキシ、アダプタ、デコレータのいずれかのように見えます。あなたがどんな価値も加えていないので、デコレータは実際には適合しません。あるインターフェースから別のインターフェースにマッピングする場合は、アダプターが適合します。あなたがツールキットへのアクセスを仲介するのに使っているように、プロキシは答えだと思います。

非常に大きなコードライブラリからツールのサブセットへのアクセスを簡素化したい場合は、ファサードにすることができます。

+0

意味があります。実際には、特定のラッパーパターンの代わりにクラス 'xxxWrapper'を指定することもできます(正確なパターン名であっても、「プロキシ」よりもうまく混乱することはありません)。多分誰かが新しい名前を考え出す必要があるでしょう! –

+0

私はWrapperという名前で周りを遊んでいる傾向があります。プロキシはいつも手荷物と一緒に見えます:) –

3

プロキシです。

アダプタは、他のclases

ファサードで使用することを容易にするために、クラスのインターフェイスを変更する複数のオブジェクト簡単のインターフェースと相互作用するための単一のインタフェースの作成です。それは抽象化のレベルを変えます。

デコレータは、インターフェイスを変更しかし、プロキシは、私も「アダプター」のことを考えていたのと同じインターフェイスと同じエンド機能

+0

良いサマリーがあり、とても便利です –

関連する問題