当以面向对象的方式实现大海捞针式搜索时,您实际上有三种选择:
1. needle.find(haystack)
2. haystack.find(needle)
3. searcher.find(needle, haystack)
你更喜欢哪个,为什么?
我知道有些人喜欢第二种选择,因为它避免引入第三个对象。然而,我不禁觉得第三种方法在概念上更加“正确”,至少如果你的目标是建模“现实世界”的话。
在哪些情况下,您认为引入助手对象(例如本例中的搜索器)是合理的? 什么时候应该避免它们?