ข้อดีและข้อเสียของการใช้คลาสเพื่อห่อหุ้มอัลกอริธึมเชิงตัวเลขคืออะไร
อัลกอริธึมจำนวนมากที่ใช้ในการคำนวณทางวิทยาศาสตร์มีโครงสร้างที่แตกต่างจากอัลกอริทึมซึ่งโดยทั่วไปจะพิจารณาในรูปแบบคณิตศาสตร์ที่เข้มข้นน้อยกว่าของวิศวกรรมซอฟต์แวร์ โดยเฉพาะอย่างยิ่งอัลกอริธึมทางคณิตศาสตร์ของแต่ละคนมักจะมีความซับซ้อนสูงซึ่งมักจะเกี่ยวข้องกับโค้ดหลายร้อยหรือหลายพันบรรทัด แต่อย่างไรก็ตามก็ไม่เกี่ยวข้องกับสถานะ (เช่นไม่ได้ทำหน้าที่ในโครงสร้างข้อมูลที่ซับซ้อน) อินเตอร์เฟซ - เป็นฟังก์ชั่นเดียวที่ทำหน้าที่ในอาร์เรย์ (หรือสอง) สิ่งนี้ชี้ให้เห็นว่าฟังก์ชั่นและไม่ใช่คลาสเป็นอินเทอร์เฟซธรรมชาติสำหรับอัลกอริธึมส่วนใหญ่ที่พบในการคำนวณทางวิทยาศาสตร์ แต่ข้อโต้แย้งนี้ให้ข้อมูลเชิงลึกเพียงเล็กน้อยเกี่ยวกับวิธีการจัดการอัลกอริทึมที่ซับซ้อนและหลายส่วน ในขณะที่วิธีการดั้งเดิมคือการมีฟังก์ชั่นหนึ่งที่เรียกใช้ฟังก์ชั่นอื่น ๆ จำนวนมากผ่านการขัดแย้งที่เกี่ยวข้องไปพร้อมกัน OOP นำเสนอวิธีการที่แตกต่างกัน เพื่อความชัดเจนโดยการห่อหุ้มอัลกอริทึมในคลาสฉันหมายถึงการสร้างคลาสที่อินพุตอัลกอริทึมถูกป้อนเข้าไปในตัวสร้างคลาสแล้ววิธีการสาธารณะเรียกว่าอัลกอริทึมจริงเรียก การใช้งาน multigrid ใน C ++ psuedocode อาจมีลักษณะเช่นนี้: class multigrid { private: x_, b_ [grid structure] restrict(...) interpolate(...) relax(...) public: multigrid(x,b) : x_(x), b_(b) { } run() } multigrid::run() { [call restrict, interpolate, relax, etc.] …