参考
あるクラスのインターフェースを、クライアントが求める他のインターフェースに変換する。
よくテストされた既存クラスを一切変更することなく、利用側に新しい機能を提供する。
アルゴリズムの構造を変えずに、アルゴリズム内のステップをサブクラスで定義する。
似たような処理をたくさん書くとき、似たクラスを安易に量産すると、不具合を修正する際にすべてのクラスを修正する必要がある。異なる処理の部分だけ実装できるようにすればいい。
保守性を考える。ラッパー関数でも十分。とにかくむやみにオリジナルファイルを編集しない。