はむはむエンジニアぶろぐ

このブログのコンセプトは"ハッキングの為なら愛する家族を傷つけることをいとわない" 自分にとってエンジニアリングは "手段ではなく生きる目的" である

GoF

PHPでStrategyパターンを実装してみた

GoFのデザインパターンの一つStrategyパターンをPHPで実装してみた。 Strategyとは「戦略」のことで、戦略とはアルゴリズムのことを指しています。 Strategyパターンは、アルゴリズム(振る舞い)をカプセル化し振る舞いの差替えや追加、削除をしやすくするも…

Decoratorパターンで既存のクラスに機能追加をする

Decoratorパターンは、GoFのデザインパターンの一つです。 既存のオブジェクトに新しい機能や振る舞いを動的に追加することを可能にする。 Decoratorパターン - wikipedia 既存のクラスに対して、機能追加を行おうというものです。 ここで、重要なのが既存の…

PHPでDIをする

PHPでDI( Dependency Injection )をします。 DIとは、日本語訳で依存性の注入です。 依存性というのは、クラスから別のクラスを呼び出している状態です。 例えば、犬が鳴いたら猫も鳴く。 meow(); } } Dogクラスのbarksメソッドは、Catクラスに依存していま…

ファットコントローラはFacadeパターンで撲滅しよう

MVCのコントローラのレガシーコードによくあるのが、ファットコントローラです。 最初は、単純なロジックだけだったのでコントローラに書かれていたロジックが月日を追うごとに肥大化して誰も読めなくなったというのはあるあるです。 ファットコントローラの…