При реализации поиска иглы стога сена объектно-ориентированным способом вы, по существу, имеете три альтернативы:
1. needle.find(haystack)
2. haystack.find(needle)
3. searcher.find(needle, haystack)
Что вы предпочитаете и почему?
Я знаю, что некоторые люди предпочитают вторую альтернативу, потому что она избегает введения третьего объекта. Однако я не могу не почувствовать, что третий подход более концептуально "правильный", по крайней мере, если ваша цель состоит в моделировании "реального мира".
В каких случаях вы считаете оправданным введение вспомогательных объектов, таких как поисковик в этом примере, и когда их следует избегать?