ตัวอย่างที่คุณให้มาก็ดีในความคิดของฉัน คุณกำลังประกาศเรียนภายในดังนั้นจึงมีเหตุผลที่ดีที่สุดที่จะเก็บไว้ในไฟล์เดียวกัน วิธีเดียวที่จะทำให้Items
คลาสของคุณเป็นคลาสบางส่วนและแยกเป็นหลายไฟล์ ฉันจะพิจารณาการปฏิบัติที่ไม่ดีนี้ นโยบายทั่วไปของฉันสำหรับคลาสที่ซ้อนกันคือพวกเขาควรมีขนาดเล็กและเป็นส่วนตัว มีข้อยกเว้นสองประการนี้:
- คุณกำลังออกแบบกลุ่มคลาส (พบมากในวัตถุประสงค์ -c) ดังนั้นจึงอาจมีเหตุผลที่จะใช้วิธีคลาสบางส่วน
- คุณต้องการ enum ที่ใช้กับพับลิก API ของคลาสพาเรนต์เท่านั้น ในกรณีนี้ฉันต้องการให้มีการประกาศ enum สาธารณะในชั้นผู้ปกครองแทนที่จะทำให้เนมสเปซสกปรก Enum ที่เป็น "Inner enum" จะให้ผลลัพธ์ในขอบเขตที่กำหนดไว้อย่างดี
ถ้าคุณใช้คำถามในลักษณะที่แตกต่างกันเล็กน้อยและถามเกี่ยวกับ "ฉันควรใส่namespace -ระดับแต่ละชั้นเป็นไฟล์ของตัวเอง" แล้วคำตอบของฉันจะเป็น "ใช่"
เมื่อออกแบบคลาสเราเคารพหลักการความรับผิดชอบเดี่ยว การอ่านรหัสจะง่ายขึ้นมากถ้ารูปร่างของมันตามความหมายของมันดังนั้นการแบ่งไฟล์ตามชั้นเรียนจึงสมเหตุสมผล
จากมุมมองเชิงกลการมีไฟล์ต่อคลาสมีข้อดีหลายประการ คุณสามารถเปิดหลายคลาสพร้อมกันในหน้าต่างที่แตกต่างกัน สิ่งนี้มีความสำคัญอย่างยิ่งเนื่องจากไม่มีนักพัฒนาที่จริงจังทำงานกับหน้าจอน้อยกว่าสองหน้าจอ ความสามารถในการมีบริบทเพิ่มเติมในหน้าของฉันหมายความว่าฉันสามารถเก็บบริบทเพิ่มเติมในหัวของฉัน (IDE ส่วนใหญ่จะอนุญาตให้คุณเปิดไฟล์เดียวกันสองครั้ง แต่ฉันพบว่ามันงุ่มง่าม)
สิ่งสำคัญต่อไปคือการควบคุมและการรวมแหล่งที่มา ด้วยการแยกชั้นเรียนของคุณออกจากกันคุณจะไม่ต้องยุ่งยากอีกต่อไปเมื่อทำการเปลี่ยนแปลงไฟล์เดียวกันเนื่องจากต้องเปลี่ยนคลาสอื่น