2012-05-08 19 views
4

が、私は私のテストでこの質問を持っていた:プログラミングパターン例研究

あるプログラミング/デザインパターンのどのような種類の本:

FileReader fr = new FileReader("file.txt"); 
BufferedReader bf = new BufferedReader(fr); 

私は、トラブルのためすみませんが、プログラミングパターンの定義は私にとっては不明であり、この質問に正しく答える方法がわかりません。

+3

私は彼らがデコレータパターンを探していると信じています。 –

答えて

10

これはDecorator Patternの例です。リンクWikipediaの記事の状態として

Decoratorパターンは、行動を動的に既存のオブジェクトに追加することを可能にするデザインパターンです。あなたの例では

、あなたは定期的に、非バッファリングFileReaderよりも効率的な読書を提供FileReaderにバッファリングを追加しています。

1

これはDecoratorパターンです。 デザインパターン本:

意図:オブジェクトに追加の責任を動的に付与します。他のオブジェクトに影響を与えずに、つまり、動的かつ透過的に個々のオブジェクトに責任を追加するために使用デコレータ

  • : デコレーターが適用可能性... 機能

    を拡張するための

    をサブクラス化に柔軟な選択肢を提供します。取り消すことができる責任については

  • です。
  • サブクラス化による拡張が実用的でない場合。場合によっては、多数の独立した拡張が可能であり、すべての組み合わせをサポートするためにサブクラスが爆発的に増加します( )。または、サブクラス化のためにクラス の定義が隠されているか、そうでなければ使用できません。

BufferedReaderの場合には、FileReaderにバッファリング機能を付加します。

パターンについて詳しく知りたい場合は、この本(またはより軽い「ヘッドファーストパターン」)を読むことをお勧めします。 さらに、JDK内でのパターン使用については、華麗なanswerがあります。とてもクールなものです!

関連する問題