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

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

จากระดับพื้นฐานมากค่าคงที่ของคลาสนั้นเป็นชุดของการยืนยันสำหรับคลาส การยืนยันอีกครั้งในเงื่อนไขง่าย ๆ คือคำสั่งที่ตรวจสอบบางส่วนของสถานะของคลาสและต้องประเมินเป็นจริงสำหรับการดำเนินการโปรแกรมเพื่อดำเนินการต่อ ตัวอย่างหนึ่งของการยืนยันคือข้อความที่ทำให้มั่นใจว่าจำนวนเต็มที่กำหนดนั้นอยู่ระหว่าง 1 ถึง 10 เสมอเมื่อมีการใช้คลาสที่ไม่เปลี่ยนแปลงการยืนยันจะถูกประเมินสำหรับทุกส่วนที่เกี่ยวข้องของข้อมูลที่วัตถุถืออยู่โดยยืนยันว่าข้อมูลทั้งหมดใน วัตถุอยู่ในช่วงที่กำหนด

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

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