Skip to main content

การผกผันของการควบคุมคืออะไร?

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

การเขียนโปรแกรมแบบดั้งเดิมกับ IOC แบบดั้งเดิม

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

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

ข้อดีของ IOC

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

ข้อเสียของ IOC

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