Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C#

Cohesion (凝聚力) ใน C#: หลักการออกแบบคลาสที่ดี

Cohesion (ความเชื่อมั่น/ความเป็นหนึ่งเดียว) ใน C# วัดระดับความสัมพันธ์ระหว่างสมาชิกภายในโมดูลหรือคลาสเดียวกัน Cohesion สูงหมายถึงสมาชิกทุกตัวทำงานร่วมกันเพื่อวัตถุประสงค์เดียว ทำให้โค้ดเข้าใจง่าย บำรุงรักษาง่าย และนำกลับมาใช้ใหม่ได้

ระดับ Cohesion

  • High Cohesion (ดี): คลาสทำหน้าที่เดียวเฉพาะเจาะจง สมาชิกทุกตัวเกี่ยวข้องกันโดยตรง
  • Low Cohesion (ไม่ดี): คลาสทำหลายหน้าที่ไม่เกี่ยวข้อง ยากต่อการเข้าใจและบำรุงรักษา

ตัวอย่าง High Cohesion: System.Math

Math.Abs    // ค่าสัมบูรณ์
Math.PI     // ค่าคงที่ π
Math.Pow    // ยกกำลัง
Math.Sqrt   // รากที่สอง
Math.Max    // ค่าสูงสุด

ทุกเมธอดและค่าคงที่เกี่ยวข้องกับคณิตศาสตร์อย่างเดียว

ตัวอย่าง Low Cohesion (ควรหลีกเลี่ยง)

คลาสที่ทำ: ส่งอีเมล, พิมพ์เอกสาร, คัดลอกไฟล์, คำนวณภาษี - ทั้งหมดในคลาสเดียว

ประโยชน์ของ High Cohesion

  • เข้าใจง่าย - อ่านชื่อคลาสรู้ทันทีว่าทำอะไร
  • ทดสอบง่าย - ทดสอบแต่ละหน้าที่แยกกันได้
  • นำกลับมาใช้ใหม่ได้ - ดึงคลาสไปใช้ในโปรเจกต์อื่นง่าย
  • บำรุงรักษาง่าย - แก้ไขหน้าที่ใดหน้าที่หนึ่งไม่กระทบหน้าที่อื่น

หลักการ: พยายามให้ Cohesion สูงสุด (Single Responsibility Principle - SRP) คลาสแต่ละตัวควรมีเหตุผลในการเปลี่ยนแปลงเพียงเหตุผลเดียว