場合分けロジックの整理
場合分けロジックの望ましい書き方
- 判断や処理のロジックをメソッドとして独立させる
- elseをなくす(早期リターンする=ガード節にする)とコードが簡潔になる
- インターフェースを使って異なるクラスを同じクラスとして扱う
- クラスを区別するための場合分けの必要がなくなる
区分オブジェクト
インターフェイスによるポリモーフィズムは区分の一覧がわかりにくいという問題がある(個々のクラスを確認するしかない)。
enum
<?php interface Colorful { public function color(): string; } enum Suit: string implements Colorful { case Hearts = 'H'; case Diamonds = 'D'; case Clubs = 'C'; case Spades = 'S'; // インターフェイスの規約を満たすための実装 public function color(): string { return match($this) { Suit::Hearts, Suit::Diamonds => 'Red', Suit::Clubs, Suit::Spades => 'Black', }; } }