Skip to main content

คลาสคงที่คืออะไร?

ในการเขียนโปรแกรมและการออกแบบคอมพิวเตอร์เชิงวัตถุที่ไม่แปรเปลี่ยนคลาสเป็นชุดของกฎที่สามารถใช้เพื่อกำหนดว่าอินสแตนซ์ของวัตถุมีอยู่ในสถานะที่ถูกต้องหรือไม่จากมุมมองของการออกแบบค่าคงที่ของคลาสคือชุดของขอบเขตระหว่างที่ข้อมูลภายในวัตถุจะต้องถูกพิจารณาในสถานะที่เหมาะสมและใช้งานได้class invariant สามารถกำหนดในเอกสารการออกแบบหรือความคิดเห็นซอร์สโค้ดหรือในบางภาษาการเขียนโปรแกรมสามารถนำไปใช้โดยตรงในรหัสคอมพิวเตอร์ที่สามารถดำเนินการได้โปรแกรมที่ใช้ค่าคงที่และการยืนยันที่เข้ารหัสสามารถทำให้โปรแกรมหยุดการดำเนินการหรือโยนข้อผิดพลาดต่าง ๆ เมื่อไม่ตรงตามเงื่อนไขที่ไม่สอดคล้องกันโดยทั่วไปจะใช้เฉพาะเพื่อการตรวจสอบข้อผิดพลาดมาตรฐานโดยทั่วไปเพื่อให้มั่นใจว่าการใช้งานชั้นในของคลาสนั้นใช้งานได้และมักจะไม่ได้อยู่ในเอกสารสาธารณะหรืออินเทอร์เฟซการเขียนโปรแกรมเป็นหลักคือการรวบรวมการยืนยันสำหรับชั้นเรียนการยืนยันอีกครั้งในแง่ง่ายคือคำสั่งที่ตรวจสอบบางส่วนของสถานะของชั้นเรียนและต้องประเมินเป็น TRUE สำหรับการดำเนินการโปรแกรมเพื่อดำเนินการต่อตัวอย่างหนึ่งของการยืนยันคือคำสั่งที่ทำให้มั่นใจได้ว่าจำนวนเต็มที่กำหนดจะอยู่ระหว่าง 1 ถึง 10 เสมอเมื่อมีการใช้ค่าคงที่ของชั้นเรียนการยืนยันจะถูกประเมินสำหรับส่วนที่เกี่ยวข้องทั้งหมดของข้อมูลที่จัดขึ้นโดยวัตถุวัตถุอยู่ในช่วงที่กำหนด

ในหลาย ๆ กรณีโดยใช้ค่าคงที่ของคลาสคล้ายกับการตรวจสอบข้อผิดพลาดมาตรฐานซึ่งวัดตัวแปรเพื่อให้แน่ใจว่าอยู่ในขอบเขตที่ใช้งานได้หรือไม่เป็นโมฆะอย่างไรก็ตามความแตกต่างระหว่างการใช้ค่าคงที่ของคลาสและการตรวจสอบข้อผิดพลาดมาตรฐานคือค่าคงที่และการยืนยันส่วนใหญ่ใช้เพื่อจับข้อผิดพลาดที่ไม่ควรเกิดขึ้นเว้นแต่จะมีข้อบกพร่องที่แท้จริงในรหัสความแตกต่างอีกประการหนึ่งคือการตรวจสอบข้อผิดพลาดมาตรฐานมีแนวโน้มที่จะเกี่ยวข้องกับการกู้คืนและการเปลี่ยนแปลงในการควบคุมการควบคุมโปรแกรมในขณะที่ผลลัพธ์ของความล้มเหลวไม่แปรเปลี่ยนควรเป็นโปรแกรมการเลิกจ้างเหตุผลที่โปรแกรมส่วนใหญ่สิ้นสุดลงเมื่อการตรวจสอบค่าคงที่ของชั้นเรียนล้มเหลวเป็นเพราะวัตถุอยู่ในสถานะที่ถูกบุกรุกคุณสมบัติของคลาสที่ไม่เปลี่ยนแปลงในภาษาการเขียนโปรแกรมเชิงวัตถุที่พวกเขาถูกกำหนดโดยปริยายคือค่าคงที่เป็นกลไกที่สืบทอดมาจากคลาสย่อยใด ๆสิ่งนี้จะป้องกันไม่ให้คลาสย่อยจากการแทนที่การตรวจสอบค่าคงที่ใด ๆ ที่ดำเนินการในคลาสหลักในที่สุดนี่หมายถึงคลาสย่อยไม่สามารถทำลายสัญญาการออกแบบที่กำหนดโดย SuperClass ซึ่งอาจทำให้เกิดผลลัพธ์ที่คาดเดาไม่ได้หรือข้อผิดพลาดของโปรแกรมหายาก