Я прочитал 4 книги по Scala, но я не нашел то, что вы просите.Полагаю, вы уже читали "Программирование в Scala" Одерского (Artima).Если нет, то это ссылка на онлайн-версию:
http://www.docstoc.com/docs/8692868/Programming-In-Scala
В этой книге приведено много примеров построения объектно-ориентированных моделей в Scala, но все примеры очень малы.в количестве классов.Я не знаю ни одной книги, которая научит вас, как структурировать крупномасштабные системы с использованием Scala.
- Императивная ориентация на объекты существует со времен Smalltalk, поэтому мы знаем многооб этой парадигме.
- Функциональная объектная ориентация , с другой стороны, является довольно новой концепцией, поэтому через несколько лет я ожидаю появления книг, описывающих крупномасштабные системы FOO.В любом случае, я думаю, что книга PiS дает вам довольно хорошее представление о том, как вы можете собрать вместе основные строительные блоки системы, такие как шаблон Factory, как заменить шаблон Strategy на функциональные литералы и т. Д.
Одна вещь, которую Виктор Кланг однажды сказал мне (и с чем я действительно согласен), заключается в том, что одно отличие между C ++ / Java и Scala OO состоит в том, что вы определяете намного больше (меньших) классов при использовании Scala.Зачем?Потому что ты можешь!Синтаксический сахар для case class
приводит к очень небольшому штрафу за определение класса, как в типизации, так и в удобочитаемости кода.И, как вы знаете, многие мелкие классы обычно означают лучшую ОО (меньше ошибок), но худшую производительность.
Еще одна вещь, которую я заметил, это то, что я гораздо больше использую шаблон фабрики при работе с неизменяемыми объектами, поскольку все«изменения» экземпляра приводят к созданию нового экземпляра.Слава Богу за метод copy()
на case class
.Этот метод делает фабричные методы намного короче.
Я не знаю, помогло ли это вам вообще, но я думаю, что этот предмет сам по себе очень интересен, и я тоже жду больше литературы по этому вопросу.Ура!