Tôi đã rất tò mò về tác động của việc không có một hàm tạo chính rõ ràng trong Scala, mà chỉ là nội dung của phần thân lớp.
Đặc biệt, tôi nghi ngờ rằng mẫu phương thức khởi tạo riêng tư hoặc được bảo vệ, nghĩa là, điều khiển việc xây dựng thông qua đối tượng đồng hành hoặc các phương thức của lớp hoặc đối tượng khác có thể không có triển khai rõ ràng.
Liệu tôi có sai? Nếu vậy, làm thế nào nó được thực hiện?
Bạn có thể có một singleton Scala (nghĩa là với từ khóa object), và xác định lớp của bạn là private bên trong singleton đó và có các phương thức của singleton để xây dựng các đối tượng của bạn.
—
Paggas
@Paggas, thật không may khi bạn trả về một thể hiện của lớp được đánh dấu là private ngoài phạm vi của nó, nó sẽ không biên dịch, ngay cả khi được trả về từ một phương thức của nó trong đối tượng đồng hành phạm vi.
—
Don Mackenzie
Điều này được thực hiện khá kỹ lưỡng trong suốt mã nguồn Scalaz. Khái niệm này còn được gọi là một kiểu dữ liệu đại số trừu tượng .
—
Tony Morris