コマンドラインから入力したユーザーに基づいてオブジェクトを生成します。 オブジェクトを処理するには、一定量のデータが必要です。これまでの私の解決策は、オブジェクトが準備が整っているかどうかを調べるためにif文を入れ子にしたものです。以下の例のように。 多分3つのif文がそれほど悪くない(?)が、if文の数が増え始めるとどうなりますか?私の選択肢は何ですか? X、Y、Zが3つの全く異なるものだとしましょう。たとえば、object.Xが整数のリストで、object.Yが文字列であり、Zがobject.Yに一定量の値しかない場合にtrueを返すための何らかの並べ替えであるとします。 この場合、ポリモーリズムがうまくいくとは思わないのですか?複雑な論理ワークフローのオブジェクトをコマンドラインから入力してオブジェクト状態を確認する
do
{
if (object.HasX)
{
if (object.HasY)
{
if (object.HasZ)
{
//Object is ready to proceed.
}
else
{
//Object is missing Z. Handle it...
}
}
else
{
//Object is missing Y. Handle it...
}
}
else
{
//Object is missing X. Handle it...
}
} while (!String.IsNullOrEmpty(line));
「単一レイヤの抽象化」原理についてお読みになることをお勧めします。そしてそれを超えて:if/elseのようなカスケードは問題への明確な道です。他の解決策を見つけるのは難しいと思います。 – GhostCat