Page 23 - วิศวกรรมซอฟต์แวร์
P. 23
การออกแบบซอฟต์แวร์เชิงวัตถุ 7-13
ตัวอย่างที่ 7.1 ถ้าหากมีคลาสของรูปร่างสองมิติเป็นคลาสแม่ อาจสร้างคลาสลูกเป็นคลาสของสามเหลี่ยม
คลาสของสี่เหลี่ยม และคลาสของวงกลมที่สืบทอดมาจากคลาสของรูปร่างสองมิติได้
ตัวอย่างที่ 7.2 ถ้าหากในมหาวิทยาลัยแห่งหนึ่งมีผู้คนอยู่ในระบบเป็นจ�ำนวนมาก บางท่านเป็นเจ้าหน้าท่ี
เป็นพนักงานของมหาวิทยาลัย เป็นนักศึกษา ในส่วนของนักศึกษายังแบ่งเป็นนักศึกษาระดับปริญญาตรี และนักศึกษา
ระดับบัณฑิตศึกษา ถ้าหากต้องการออกแบบโปรแกรมส�ำหรับเก็บข้อมูลบุคคลต่าง ๆ ท่ีเกี่ยวข้องในมหาวิทยาลัย
แหง่ น้ี อาจสรา้ งคลาสของบคุ คลขึน้ มาเป็นคลาสแม่ สำ� หรับรายละเอียดของบุคคลประเภทอนื่ ๆ ให้สรา้ งคลาสสืบทอด
ต่อจากคลาสแม่นี้
การสืบทอดคุณสมบัตินี้ มีข้อดี คือ
• ท�ำให้มีโครงสร้างท่ีเป็นระบบ ระเบียบ ปรับเปลี่ยนได้ง่าย
• ลดเวลาในการพัฒนาระบบ
• ลดค่าใช้จ่ายในการพัฒนา
5.5 การพอ้ งรูป (polymorphism) เป็นการท่ีวัตถุท่ีอยู่ในคลาสลูก (sub class) ที่เกิดจากคลาสแม่เดียวกัน
สามารถมีพฤติกรรมโดยความหมายและวัตถุประสงค์อย่างเดียวกัน แต่รายละเอียดการด�ำเนินการน้ันแตกต่างกัน
เม่ือมีการเรียกใช้กิจกรรมนั้นจะไปเรียกตามคลาสลูกที่วัตถุน้ันเป็นสมาชิกอยู่
เช่น คลาสนก คลาสแมลงปอ และคลาสผึ้ง ได้รับการสืบทอดคุณสมบัติจากคลาสสัตว์มีปีก โดยทั้ง 3 คลาส
มีการด�ำเนินงาน คือ บินเหมือนกัน แต่เม่ือเรียกใช้การด�ำเนินงานบินดังกล่าว วัตถุท่ีสร้างจากคลาสนกจะมีลักษณะ
การบินโดยกระพือปกี ขน้ึ ลง ในขณะที่วัตถทุ สี่ ร้างขึน้ จากคลาสแมลงปอจะมลี กั ษณะการบินโดยกางปกี รับลม และวัตถุ
ท่ีสร้างขึ้นจากคลาสผ้ึงจะมีลักษณะการบินโดยกระพือปีกถี่เร็ว ดังแสดงในภาพที่ 7.5
สัตว์มีปีก::บิน( )
นก::บิน( ) แมลงปอ::บิน( ) ผึ้ง::บิน( )
กระพือปีกขึ้นลง กางปีกรับลม กระพือปีกถี่เร็ว
ภาพที่ 7.5 คณุ ลักษณะแบบการพ้องรปู
ท่ีมา: http://mathcom.uru.ac.th/~nerissa/OOP/01_OOP_55.ppt ค้นคืนวันที่ 25 กุมภาพันธ์ 2557
กจิ กรรม 7.1.1
1. จงอธบิ ายความแตกตา่ งระหวา่ งการพฒั นาซอฟตแ์ วรเ์ ชงิ โครงสรา้ งกบั การพฒั นาซอฟตแ์ วรเ์ ชงิ วตั ถุ
2. แนวทางการพฒั นาซอฟต์แวร์เชงิ วตั ถมุ ีลักษณะเป็นอย่างไร และมขี อ้ ดอี ยา่ งไรบ้าง
แนวตอบกจิ กรรม 7.1.1
1. สรุปความแตกต่างระหว่างการพัฒนาซอฟต์แวร์เชิงโครงสร้างกับการพัฒนาซอฟต์แวร์เชิงวัตถุ
ในประเดน็ ต่าง ๆ ได้ดงั นี้