我有一个程序请求网页,解析它并取决于结果决定下一步做什么。
例如:程序应该从页面中获取一些元素,我们称之为“目标元素”。如果程序确实请求并获得“someOtherElement”,它将继续执行。如果它获得了“aimElement” Executor 应该点击一些链接,执行结束,我们进入下一个任务。程序有 20 次尝试获取“aimElement”。并且“aimElement”将来可能会发生变化。
看起来很简单,但我真的不知道如何通过良好的 oo 设计来实现这一点。我在考虑两个对象:Task 和 Executor。Task 包含所有条件,Executor 接收 Task 作为参数,并根据 Task 的需要执行请求。但是如果 executor 将原始页面返回给 Task 本身,Task 就会变得复杂,并且它们之间会有很强的联系。如果 Executor 返回已经解析的页面元素,那么 Executor 将需要知道解析什么以及如何解析,并且也会很复杂,并且会有强连接。
我不知道我的解释是否清楚,但也许你可以给我一些设计模式的建议,或者分享你遇到类似问题的经验。