いくつかのテンプレート ファイルを解析するコードがあり、プレースホルダーが見つかると、それを値に置き換えます。何かのようなもの:
<html>
<head>
<title>%title%</title>
</head>
<body bgcolor="%color%">
...etc.
コードでは、パーサーがそれらを見つけて、次の関数を呼び出します。
string getContent(const string& name)
{
if (name == "title")
return page->getTitle();
else if (name == "color")
return getBodyColor();
...etc.
}
元のプレースホルダーを戻り値に置き換えます。
実際には、これはダミーの Web ページではなく、多数 (50 以上) の異なるプレースホルダーが発生する可能性があります。
私のコードは C++ ですが、この問題はどの言語にも存在すると思います。それは、アルゴリズムと OO 設計に関するものだと思います。唯一の重要なことは、動的/評価済みのコードが必要なかったとしても、これをコンパイルする必要があるということです。
Chain of Responsibility パターンの実装について考えましたが、状況があまり改善されないようです。
更新: また、別のスレッドのこのコメントについても心配しています。私はそれを気にする必要がありますか?