デザインパターン――メモ1
1、差分プログラミング:既存のクラスを変更せずに継承し、新たに追加したい機能だけを子クラス內でプログラミングすることを差分プログラミングと言います。差分プログラミングはオブジェクト指向の大きな特徴の一つです。
2、カプセル化の時、プロパティへのアクセスを制限する必要がある: パブリックプロパティが他のクラスから自由に參照・更新することができますので、プロパティ値の整合性が取れなくなる恐れがあります。この問題を防ぐには、
・ プロパティの値を參照・更新するときは必ず特定のメソッドを経由するようにします。
・ クラスの屬性(プロパティ)や振る舞い(メソッド)は、外部のクラスからは可能な限り見えないようにし(情報隠弊)、クラスの獨立性を高めにする。
3、再利用における継承と委譲
継承:
・ メリット プログラミング言語で支援されていて簡単である。人間の思考に當てはまりやすい。
・ デメリット コンパイル時に靜的に動作が決定されるので、継承した実裝方法を変更できない。親クラスの実裝を変更すると子クラスの実裝にも影響が出る可能性がある。
委譲:
・ メリット 実行時にオブジェクトを得るのでその実裝方法も動的に変更される。クラス間の影響が少ない(カブセル化の概念に忠実)。
・ デメリット オブジェクト間のインターフェースを謹慎に設計しなくてはならない。システムの振る舞いは1クラスの中では決定せず、オブジェクト間の関連に依存する。
4、GoFのデザインパターン
|
目的 |
產生 |
構造 |
振る舞い |
範 囲 |
クラス |
ファクトリメソッド |
アダプター |
インタープリタ テンプレートメソッド |
オブジェクト |
アブストラクトファクトリ ビルダー プロトタイプ シングルトン |
アダプター ブリッジ コンポジット デコレータ ファサ-ド フライウェイト プロキシー |
チェーンオブレスポンシビリティ コマンド イテレータ メメント オブザーバー ステート ストラテジー ビジター |
---END-----------
説明:<獨習デザインパターン>の第一章、第二章を參照。