ฉันกำลังพูดคุยกับเพื่อนร่วมงานของฉันว่าคอนสตรัคเตอร์สามารถทำงานได้เท่าใด ฉันมีคลาส B ที่ต้องใช้วัตถุอื่นภายใน A. วัตถุ A เป็นหนึ่งในสมาชิกไม่กี่คนที่คลาส B ต้องการทำงาน วิธีการสาธารณะทั้งหมดขึ้นอยู่กับวัตถุภายใน A. ข้อมูลเกี่ยวกับวัตถุ A ถูกเก็บไว้ในฐานข้อมูลดังนั้นฉันจึงพยายามตรวจสอบและรับมันโดยดูจากฐานข้อมูลในตัวสร้าง เพื่อนร่วมงานของฉันชี้ให้เห็นว่าตัวสร้างไม่ควรทำงานมากไปกว่าการจับพารามิเตอร์คอนสตรัคเตอร์ เนื่องจากวิธีการสาธารณะทั้งหมดจะล้มเหลวอย่างไรก็ตามหากไม่พบวัตถุ A โดยใช้อินพุตไปยังตัวสร้างฉันจึงแย้งว่าแทนที่จะอนุญาตให้สร้างตัวอย่างและล้มเหลวในภายหลัง
คนอื่นคิดอย่างไร ฉันใช้ C # หากสร้างความแตกต่าง
การอ่านมีเหตุผลที่จะทำงานของวัตถุทั้งหมดในคอนสตรัคเตอร์หรือไม่? ฉันสงสัยว่าการดึงวัตถุ A โดยไปที่ DB เป็นส่วนหนึ่งของ "การเริ่มต้นอื่น ๆ ที่จำเป็นในการทำให้วัตถุพร้อมใช้งาน" เพราะหากผู้ใช้ส่งค่าผิดไปยังตัวสร้างฉันจะไม่สามารถใช้วิธีการสาธารณะใด ๆ
ตัวสร้างควรสร้างอินสแตนซ์ของฟิลด์ของวัตถุและทำการเริ่มต้นอื่น ๆ ที่จำเป็นเพื่อทำให้วัตถุพร้อมใช้งาน โดยทั่วไปหมายถึงตัวสร้างมีขนาดเล็ก แต่มีสถานการณ์สมมติที่จะมีงานจำนวนมาก