前提・実現したいこと
システム設計の勉強の為、タクシーを題材にプログラミングしています。
利用者(User)タクシーを呼ぶ→タクシー組織(Organization)最適なタクシーを派遣→タクシー(taxi)利用者を運び、料金請求→利用者支払い
Userクラス:目的地とタクシーの好み(初期値は早い順)
Organizationクラス:Userクラスから送られてきた値によって、最適なTaxクラスを返します。
Taxiクラス:速い、安いなど様々に分岐しています。
Organizationクラスが引数を元に条件分岐で〇〇Taxiクラスを返します。つまりこれはTaxiの種類が増えるごとにどんどん肥大化してしまう。という事になります。
この問題を解決するにはどうしたらいいのでしょうか?
該当のソースコード
PHP
1<?php 2namespace Lib; 3 4class Organization 5{ 6 // システムの成長に従い、どんどん肥大化してしまう 7 public function dispatchTaxi($criteria = 'first') 8 { 9 if ($criteria === 'first') { 10 return new Taxi\FirstTaxi(); 11 } 12 } 13 14}
回答3件
あなたの回答
tips
プレビュー