インスタンスを操作しているだけです。難しいことはありませんね。こちらの場合であれば,別の使用するクラスを追加することもできます。継承は手軽で安全に機能を追加できますが,多重継承できないなどの問題があります。抽象クラスの継承を使った有効なテクニックもありますが,多くの場合,モジュールを切り分け,組み合わせるだけでも十分に効果があります。こちらの方をマスターしましょう。いうテクニックを使うと柔軟性が向上します。インスタンスを自身で生成しており,該当クラス(の実装)への依存が確実なため,依存度という点では継承と変わりません。依存するオブジェクトを外部から受け取ることで依存度を下げられます。受け取る型をインターフェイスにすることで,クラス自体を変更することなしに,状況に応じてその振る舞いを変更することができます。オブジェクト指向において最も大事なことの1つである「実装ではなく抽象に依存しろ」ということにもつながります。用いてインスタンスの生成時に依存するオブジェクトを選択できるようにしておくと,単体テストでモックに差し替えたテストが容易に行えるというメリットもあります。2,147,483,647。半分より大きな値を入れるとオーバーフローしてしまいますね。このように,要求(シグネチャ)というのは“その関数に適用できる対象の範囲を限定する”という意味でもあります。広い意味では,オーバーロードや多重ディスパッチなども含まれるようです。↩この場合は「委譲」でもあります。実装でもこのテクニックは利用されます。