Webページをリクエストして解析し、結果に応じて次に何をすべきかを決定するプログラムがあります。
例: プログラムはページから何らかの要素を取得する必要があります。これを「目標要素」と呼びましょう。プログラムが「someOtherElement」を要求して取得すると、実行が続行されます。「aimElement」を取得した場合、Executor はいくつかのリンクをクリックする必要があり、実行が終了して次のタスクに進みます。プログラムは「aimElement」の取得を 20 回試みました。また、「aimElement」は将来変更される可能性があります。
シンプルに思えますが、これを適切な oo-design で実装する方法がよくわかりません。Task と Executor の 2 つのオブジェクトを考えています。Task にはすべての条件が含まれ、Executor は Task を引数として受け取り、Task のニーズに基づいて要求を行います。しかし、executor が生のページを Task 自体に返すと、Task は複雑になり、それらの間に強いつながりができます。Executor がページの既に解析された要素を返す場合、Executor は何をどのように解析するかを知る必要があり、また複雑になり、強力な接続が存在します。
私の説明が明確かどうかはわかりませんが、デザインパターンについてアドバイスをいただけたり、同様の問題に関する経験を共有していただけたりするかもしれません。