Создатель Clojure language утверждает, что "открытый и большой набор функций работает с открытым и небольшим набором расширяемых абстракций является ключом к алгоритмическому повторному использованию и библиотечной совместимости". Очевидно, это противоречит типичному подходу ООП, где вы создаете множество абстракций (классов) и относительно небольшой набор функций, работающих на них. Пожалуйста, предложите книгу, главу в книге, статью или ваш личный опыт, который подробно описывает темы:
- мотивируя примеры проблем, которые появляются в ООП, и как использование "многих функций при нескольких абстракциях" будет адресовано им.
- Как эффективно создавать дизайн MFUFA
- как реорганизовать OOP-код в сторону MFUFA
- как синтаксис языков ООП мешает MFUFA
* MFUFA: "многие функции при нескольких абстракциях"