ฉันอยากรู้เกี่ยวกับผลกระทบของการไม่มีคอนสตรัคเตอร์หลักที่ชัดเจนใน Scala เพียงแค่เนื้อหาของคลาสเท่านั้น
โดยเฉพาะอย่างยิ่งฉันสงสัยว่ารูปแบบคอนสตรัคเตอร์ส่วนตัวหรือที่ได้รับการป้องกันนั่นคือการควบคุมการก่อสร้างผ่านอ็อบเจ็กต์ที่แสดงร่วมหรือคลาสหรือวิธีการของอ็อบเจ็กต์อื่นอาจไม่มีการนำไปใช้อย่างชัดเจน
ฉันผิดเหรอ? ถ้าเป็นเช่นนั้นจะทำอย่างไร?
คุณสามารถมี Scala singleton (พร้อมคีย์เวิร์ด object นั่นคือ) และกำหนดคลาสของคุณเป็นไพรเวตภายในซิงเกิลตันนั้นและมีเมธอดของซิงเกิลตันสำหรับสร้างอ็อบเจกต์ของคุณ
—
Paggas
@Paggas น่าเสียดายที่เมื่อคุณส่งคืนอินสแตนซ์ของคลาสที่ทำเครื่องหมายว่าเป็นส่วนตัวนอกขอบเขตมันจะไม่คอมไพล์แม้ว่าจะส่งคืนจากเมธอดของมันในวัตถุร่วมขอบเขตก็ตาม
—
Don Mackenzie
สิ่งนี้ทำได้ค่อนข้างล้นเหลือตลอดซอร์สโค้ด Scalaz แนวคิดนี้เรียกอีกอย่างหนึ่งว่าประเภทข้อมูลพีชคณิตนามธรรม
—
Tony Morris