Многие классы стандартной библиотеки Scala используют apply()
объекта-компаньона в качестве фабрики. Это часто бывает удобно при цепочке вызовов, таких как List(List(1))
. С другой стороны, по-прежнему можно создавать объекты напрямую с помощью new
(new HashMap[Int, Int]()
).
Это стандартная библиотека. Теперь, в моем собственном коде, какой подход лучше использовать: фабрика-компаньон или создание объектов с помощью new
?
Существует ли соглашение о том, когда создавать фабрику сопутствующих объектов, а когда использовать ключевое слово new
?
Каковы преимущества использования одного над другим?
new
похоже на ношение цилиндра или подтяжек. Это стильно для определенного стиля, но не очень современно. Фабрика-компаньон — пара джинсов в стиле кэжуал. - person som-snytt   schedule 29.08.2015