デザインパターン

PHPで学ぶデザインパターン - Stateパターン

アプリケーション

概要PHPで学ぶデザインパターン Advent Calendar 2018で間に合わなかった記事。 Stateパターンとは状態をクラスで用意することで振る舞いを切り替えることができるようなパターン。 実装スイッチのオンオフの状態を切り替えるような例を想定した。シングルトンを使ったほうが良い気がする。 <?php class OnState { public function get...

GoF PHP デザインパターン ステートパターン

PHPで学ぶデザインパターン - Bridgeパターン

アプリケーション

概要PHPで学ぶデザインパターン Advent Calendar 2018で間に合わなかった記事。 Bridgeパターンとは機能拡張のためのスーパークラスと実装拡張のためのサブクラスを用意し、機能の橋渡しをするようなパターン。 実装<?php interface Connector { public function __construct(Converter $converter)...

GoF PHP デザインパターン ブリッジパターン

PHPで学ぶデザインパターン - Adapterパターン

アプリケーション

概要PHPで学ぶデザインパターン Advent Calendar 2018で間に合わなかった記事。 Adaperパターンとは元となるクラスに修正を加えることなくインターフェースを変更することができるパターン。 異なるインターフェース間の互換性を調整するようなAdapterクラスを用意することで実現する。 実装<?php interface Bird { public function...

アダプターパターン GoF PHP デザインパターン

PHPで学ぶデザインパターン - Mediatorパターン

アプリケーション

概要PHPで学ぶデザインパターン Advent Calendar 2018で間に合わなかった記事。 Mediatorパターンとは仲介者・調停者の意味。 オブジェクトの振る舞いに関するデザインパターンで、オブジェクト間のやりとり調整するためのパターン。 オブジェクト同士のやり取りが複雑化し、関係性が見えにくくなるような時に有用かもしれない。 実装<?php // Mediator class...

PHP デザインパターン メディエーターパターン GoF

PHPで学ぶデザインパターン - Strategy

アプリケーション

概要この記事はPHPで学ぶデザインパターン Advent Calendar 2018の記事です。 今回はStrategyパターンについてかきます。 Strategyパターンとは?Strategyパターンは、アルゴリズムの切り替えを容易にするようなパターンです。異なる処理をそれぞれ別のクラスに定義するため、 処理を動的に選択できるだけでなく、条件分岐を減らすことも可能としてします。OCP(open/...

デザインパターン PHP GoF ストラテジーパターン

PHPで学ぶデザインパターン - Factory・Factory Method・Abstract Factory

アプリケーション

この記事はPHPで学ぶデザインパターン Advent Calendar 2018の記事です。 概要Factory・Factory Method・Abstract Factoryについてかきます。 Factoryパターンについて知るまずはFactoryパターンについてざっくり説明します。 interface Robot { public function say(); } class Blue...

デザインパターン GoF PHP アブストラクトファクトリーパターン ファクトリーパターン ファクトリーメソッドパターン

DIとサービスロケーター

アプリケーション

概要DIとService Locatorの違いについてまとめる DIとは デザインパターンの一種 依存性注入 オブジェクト間の依存性を分離 オブジェクトの実行時に必要なオブジェクトが注入されるようにする テストしやすくなる DIパターンの実装DIパターン(コンストラクタインジェクション)を実装してみる。なお、DIパターンには、コンストラクタインジェクション、セッターインジェクション、メソッド...

DI サービスロケーター デザインパターン

PHPで学ぶデザインパターン - オブジェクト指向の基礎

アプリケーション

概要今は絶版になっているPHPによるデザインパターン入門を教科書にして、PHPでデザインパターンを学びます。(※Amazonで中古がありますが、定価の倍以上の値段が付いているようです。) 本連載で扱うコードはgithubにまとめていきます。 本来であれば、OOPの先駆けである言語でデザインパターンを学びたいところでしたが、PHP以外の言語の素養がなかったことと、PHPでデザインパターンを解説してい...

デザインパターン PHP OOP

PHPで学ぶデザインパターン - Template Method ~処理の穴埋め~

アプリケーション

Template Method パターンとは?似たような処理を枠組み(型)としてスーパークラスで定義し、より具体的な処理内容をサブクラスで実装するというパターンです。単なる継承ではなく、具体的な処理内容を抽象メソッドとして定義することで、スーパークラスのメソッドの実装を保証し、クラスの振る舞いをサブクラスによって定義させる継承を利用したパターンです。 構造AbstractClass処理の枠組みを定...

デザインパターン PHP テンプレートメソッドパターン

PHPで学ぶデザインパターン - Singleton ~いくつ作るかを制限~

アプリケーション

Singleton パターンとは?インスタンス生成のコストを制御するために、インスタンスが1つしかないことを保証するパターンです。 構造SingletonClasspriavateのコンストラクタとインスタンスを1つだけ返すstaticメソッドと自分自身のインスタンスを保持するためのstatic変数を用意するだけです。 メリットインスタンスへのアクセスを制御できるSingletonパターンが保持す...

デザインパターン PHP シングルトンパターン