大量のデータ マップがあり、各マップをネストされた方法で分類する必要があります。
つまり、与えられたアイテムは A または B (関数によって決定される) である可能性があり、B の場合は C または D (別の関数によって決定される) である可能性があり、以下同様です。各段階で、分類に関連するより多くのデータが各マップに追加される場合があります。分類を行う関数自体は非常に複雑であり、決定を行うために追加のデータを取り込む必要がある場合があります。
自己再帰的マルチメソッドは、これを行うコードを構成する良い方法でしょうか? アイテムについてこれまでに決定された最も具体的なタイプで発送するか、それ以上何もできない場合は現在の最良の分類を返します.
単一の分類関数内にネストされた if を使用して目的の効果を得ることができましたが、まあ、それは醜いです。
マルチメソッドはここに適していますか、それとも物事を複雑にしすぎていて、コードを構造化するより簡単な方法がありませんか?