1
switch文を削除したいと思いますが、実際にはわかりません。多態性コードへのリファクタリング・ステートメント
public function isDirectEliminationCompetitor()
{
return !$this->category->isTeam() && $this->isDirectEliminationType() && !$this->hasPreliminary();
}
任意のアイデアはどのように私は、この方法の複雑さを向上させる必要があります:isDirectEliminationCompetitor
よう
/**
* @return TreeGenerable
*/
public function chooseGenerationStrategy()
{
switch (true) {
case $this->isDirectEliminationCompetitor():
$generation = new DirectEliminationCompetitorTreeGen($this, null);
break;
case $this->isDirectEliminationTeam():
$generation = new DirectEliminationTeamTreeGen($this, null);
break;
case $this->isPlayoffCompetitor():
$generation = new PlayOffCompetitorTreeGen($this, null);
break;
case $this->isPlayoffTeam():
$generation = new PlayOffTeamTreeGen($this, null);
break;
default:
$generation = new PlayOffCompetitorTreeGen($this, null);
}
return $generation;
}
すべてのメソッドは、そのような条件はありますか?