Page 21 - วิศวกรรมซอฟต์แวร์
P. 21
การออกแบบซอฟต์แวร์เชิงวัตถุ 7-11
5. คุณลกั ษณะของวิธีการเชิงวัตถุ
แนวทางการพัฒนาซอฟต์แวร์ด้วยวิธีการเชิงวัตถุจะสมบูรณ์ได้น้ัน ต้องประกอบไปด้วยคุณลักษณะส�ำคัญ
ดังนี้
5.1 การสร้างคลาสนามธรรมและสร้างตัวแทนคลาส (abstraction and instantiation) การสร้างคลาส-
นามธรรม (abstraction) คือ กระบวนการในการให้ความคิดรวบยอดหรือคอนเซ็บต์กับวัตถุจนเกิดเป็นคลาส
เป็นการมองอ็อบเจ็กต์เฉพาะภายนอกเท่านั้น โดยไม่สนใจว่าอ็อบเจ็กต์น้ันเกิดขึ้นได้อย่างไร ดังน้ัน ในทางปฏิบัติต้อง
พยายามให้ทีมพัฒนาระบบให้คอนเซ็บต์เป็นไปในแนวทางเดียวกัน เพ่ือให้ได้ระบบงานตรงตามที่ต้องการจริง ๆ การ
สร้างคลาสนามธรรมแบ่งได้เป็น 4 กระบวนการ ได้แก่
5.1.1 การจ�ำแนกคลาสนามธรรม (classification abstraction) เป็นกระบวนการท่ีใช้แยกประเภทวัตถุ
ต่าง ๆ ท่ีอยู่ในกรอบความคิด เพ่ือให้ความคิดรวบยอดแก่วัตถุเหล่าน้ัน จนกระท่ังได้คลาสพ้ืนฐานตามต้องการ
5.1.2 การเป็นส่วนหนึ่งของคลาส (aggregation abstraction) เป็นกระบวนการท่ีน�ำเอาคลาสพ้ืนฐาน
มารวมกัน หรือประกอบกัน เพ่ือให้เกิดเป็นคลาสที่ใหญ่ข้ึน
5.1.3 การระบคุ ณุ ลกั ษณะทวั่ ไปของคลาส (generalization abstraction) เปน็ กระบวนการในการนำ� คลาส
ทม่ี ลี กั ษณะเหมอื นกนั หรอื คลา้ ยกนั หรอื มสี มบตั อิ ยา่ งใดอยา่ งหนงึ่ รว่ มกนั มาจดั หมวดหมเู่ ปน็ คลาสเดยี วกนั ในทำ� นอง
กลับกัน ถ้ามีคลาสมากกว่า 1 คลาส แล้วจ�ำแนกออกเป็นคลาสย่อย ๆ เรียกวิธีการน้ีว่า การระบุความเฉพาะเจาะจง
(specialization)
5.1.4 ความเกย่ี วขอ้ งกนั ของคลาส (association abstraction) เป็นกระบวนการในการสร้างความสัมพันธ์
ระหว่างคลาสต่าง ๆ ในขอบเขตปัญหาที่สนใจ โดยเป็นการอธิบายความสัมพันธ์ของคลาสในเชิงกิจกรรม
ส่วนการสร้างตัวแทนคลาส (instantiation) คือ กระบวนการของการท�ำให้เกิดวัตถุจากคลาส เพ่ือให้วัตถุ
นั้นเป็นตัวแทน (instance) ในการด�ำเนินการใด ๆ แทนคลาส
5.2 การห่อหุ้ม (encapsulation) เป็นกลไกท่ีใช้ซ่อนสารสนเทศบางอย่างไว้ในวัตถุ โดยจะไม่ทราบว่า
การท�ำงานต่าง ๆ ของอ็อบเจ็กต์มีการท�ำงานอย่างไร การห่อหุ้มจะช่วยป้องกันมิให้วัตถุอื่นท่ีอยู่ภายนอกเข้าถึงวัตถุ
หนึ่ง ๆ ไดอ้ ยา่ งอสิ ระ คณุ ลักษณะของการห่อห้มุ นเี้ ป็นลักษณะทสี่ ำ� คญั ของการเขียนโปรแกรมเชิงวตั ถุ กลา่ วคอื ข้อมลู
หรือคุณลักษณะบางอย่างท่ีสร้างขึ้นในคลาสสามารถปกป้องหรือถูกห่อหุ้มอยู่ภายในไม่ให้อ็อบเจ็กต์สามารถเข้าใช้งาน
หรือเข้าไปแก้ไขข้อมูลได้ เช่น ถ้าสร้างคลาสส�ำหรับวงกลมช่ือ Cricle ภายในคลาสมีเมธอดส�ำหรับก�ำหนดค่ารัศมี
เมธอดส�ำหรับหาเส้นรอบวงกลม และมีข้อมูลท่ีเป็นรัศมีวงกลมส�ำหรับให้เป็นค่าคงท่ีในการค�ำนวณหาเส้นรอบวงกลม
การสร้างคลาสลักษณะน้ี ค่ารัศมีจะใช้ภายในคลาสเท่านั้น ไม่ควรให้อ็อบเจ็กต์แก้ไขได้ เนื่องจากอาจท�ำให้การค�ำนวณ
หาค่าเส้นรอบวงผิดไปหมด ดังน้ัน การเข้าถึงข้อมูลต่าง ๆ ภายในอ็อบเจ็กต์ควรใช้วิธีการเข้าถึงผ่านทางเมธอด ส�ำหรับ
กลไกการปกป้องข้อมูล จะกล่าวรายละเอียดในตอนท่ี 7.2
5.3 การลำ� ดบั ชน้ั (hierarchy) หมายถงึ การลำ� ดบั ชน้ั ของวตั ถุ โดยเปน็ การนำ� วตั ถมุ าจดั กลมุ่ และสรา้ งลำ� ดบั
ความสัมพันธ์ เช่น
- สตั ว์ อาจจะแบ่งล�ำดับชั้นย่อยได้เป็น แมลง กับสัตว์เลี้ยงลูกด้วยนม และแมลงอาจจ�ำแนกได้เป็น
ผีเสื้อ ผึ้ง ส่วนสัตว์เล้ียงลูกด้วยนมอาจจ�ำแนกได้เป็น กระต่าย ช้าง เป็นต้น ลักษณะการจัดกลุ่ม และสร้างล�ำดับความ
สัมพันธ์ของล�ำดับชั้น ตัวอย่างจะมีลักษณะดังภาพท่ี 7.3