デザインパターン

『Head Firstデザインパターン』 Factoryパターン

「new」を見たら「具象」と考える newは具象クラスをインスタンス化する。しかし、コードの柔軟性を保つためにインターフェースを使いたい。 「new」の何が問題か 本当の問題は「変更」であり、変更によってnewの使用箇所がどのような影響を受けるのかという…

『Head Firstデザインパターン』 Decoratorパターン

Decoratorパターンとは Decoratorパターンはオブジェクトに付加的な責務を動的に付与する。デコレータはサブクラス化の代替となる、柔軟な機能拡張手段を提供する。 スターバズコーヒー 継承を使って飲み物を増やすのはクラス爆発や硬直した設計になる。 継…

『Head Firstデザインパターン』 Observerパターン

Observerパターンとは Observerパターンは、オブジェクト間の1対多の依存関係を定義し、あるオブジェクトの状態が変化するとそれに依存しているすべてのオブジェクトが自動的に通知され更新されるようにする。 ObserverパターンではPublisherをサブジェクト…

NullObjectパターンを覚えた

出品者のデータにフィルタをかけて該当する出品者のSellerオブジェクトを返すメソッドがあるとします。 サンプルコード data = $data; } /** * 出品者の価格 * @return int */ public function price(): int { return $this->…

Strategyパターン

Strategyパターン 目的 様々なアルゴリズムを、それが発生するコンテキストに応じて使い分けられるようにする。 問題 要求を行うクライアントや操作対象データによって、適用するアルゴリズムを選択する。 解決策 該当アルゴリズムの実装からアルゴリズムを個別…

Adapterパターン

Adapterパターン 目的 修正することのできない既存オブジェクトを、特定のインターフェースに適合させる。 既存のクラスを修正することなく、適切なインターフェース(メソッド)を追加することができる。 問題 使用したいデータや振る舞いが既存システム内に存在…

『オブジェクト指向のこころ』

オブジェクト指向のこころ (SOFTWARE PATTERNS SERIES)作者: アラン・シャロウェイ,ジェームズ・R・トロット,村上雅章出版社/メーカー: 丸善出版発売日: 2014/03/11メディア: 単行本(ソフトカバー)この商品を含むブログ (6件) を見る まえがき デザインパ…