Skip to main content

การออกแบบโดยสัญญา reg;?

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

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

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

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

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