9章あたり
並行プログラミングにおけるエラーを理解するには以下の3つの概念を理解する
- リンクは2つのプロセスの間のエラー伝播経路を定義するもの
- 2つのプロセスがリンクされている場合に一方のプロセスが死ぬと、終了シグナルがもう一方のプロセスに送られる。
Head Firstデザインパターン ―頭とからだで覚えるデザインパターンの基本Eric Freeman Elisabeth Freeman Kathy Sierra Bert Bates オライリージャパン 売り上げランキング: 57,159
Strategyパターンは交換可能な振舞いをカプセル化し、委譲を使って使用すべき振舞いを決定します。
主要な処理を行っているコードの中で一部動的に振舞いを変更させたい場合に利用し、
コードの中で動的に振舞い変更したい場合は、if文なので条件分岐しがちになりますが
Strategyを利用することで主要な処理に対して影響を与えず、1つのステートメントで動的な振舞いを定義することができます。
新しい振舞いを提供するために、オブジェクトをラップします。
オブジェクト毎に機能を追加したいときや機能を動的に付け外ししたいとき、同じインターフェース
を持つオブジェクトで被せるようにすることで、既存クラスに手を加えずに機能追加ができます。
状態が変化したときにオブジェクトへ通知します。
あるオブジェクト(通知元)の状態変化を不特定多数のオブジェクト(通知先)に知らせたいときに利用します。
監視対象オブジェクトを中継させることで、通知元オブジェクトは通知先オブジェクトのことを知らなくても定義できます。
HeadFirstデザインパターンでの定義
クライアントが具象クラス特定することなく一連のオブジェクト作成できるようにします。
そのため、具体的なクラスをクライアントから隠蔽でき容易に切り換えることができます。
HeadFirstデザインパターンでの定義
サブクラスが作成する具象クラスを決定します。
インスタンス化したいオブジェクト(製品)を実行時の条件によって決めたい場合に利用します。
ただ、FactoryMethodパターンはオブジェクト(製品)を生成する側と利用する側を分けて定義する必要があります。
分けておくことで、将来システムに起こり得る変更をあらかじめ分離でき保守性を保つことができます。
Commandパターンは、リクエストを行うオブジェクトと、その実行方法を
知っているオブジェクトを分離させます。
そして、どのリクエストにも対応できるよう共通のAPIを持ち合せており
異る種類のリクエストでも同様の呼び出しでアクションを実行させることできる
ただ1つだけのオブジェクトが作成されていることを保証します。
HeadFirstデザインパターンでの定義