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