Мені було цікаво вплинути на те, що у Scala немає явного первинного конструктора, а лише вмісту тіла класу.
Зокрема, я підозрюю, що модель приватного або захищеного конструктора, тобто керування конструкцією за допомогою супутнього об'єкта чи методів іншого класу чи об'єкта, може не мати очевидного втілення.
Я помиляюся? Якщо так, то як це робиться?
Ви можете мати одиночну шкалу Scala (з ключовим словом об'єкта, тобто) та визначити свій клас як приватний в межах цього сингтона та мати методи синглів для побудови ваших об'єктів.
—
Паггас
@Paggas, на жаль, коли ви повертаєте екземпляр класу, позначеного приватним, поза його областю, він не буде компілюватися, навіть коли повертається з методу, який знаходиться в об'єкті супутника області.
—
Дон Макензі
Це робиться досить рясно у всьому вихідному коді Scalaz. Поняття також відоме як абстрактний алгебраїчний тип даних.
—
Тоні Морріс