Open/Closed Principle (OCP) บอกว่าหน่วยซอฟต์แวร์ควรเปิดกว้างสำหรับการขยาย แต่ปิดสำหรับการแก้ไข: คุณควรเพิ่มลักษณะการทำงานใหม่โดยการเพิ่มโค้ดใหม่ แทนที่จะแก้ไขโค้ดที่มีอยู่และได้รับการทดสอบแล้ว
กลิ่นที่ OCP มุ่งเป้า
():
shape.kind == : * shape.r **
shape.kind == : shape.s **
shape.kind == : shape.w * shape.h
