แนวคิดเชิงวัตถุ(Object Orientation)

Download Report

Transcript แนวคิดเชิงวัตถุ(Object Orientation)

291474
Selected Topics in Information System I
บทที่ 2
แนวคิดและหลักการเชิงวัตถุ
อ.ธารารัตน์ พวงสุ วรรณ
คณะวิทยาศาสตร์ และศิลปศาสตร์
มหาวิทยาลัยบูรพา วิทยาเขตสารสนเทศจันทบุรี
เนือ้ หา
 แนวคิดเชิงวัตถุ (Object Orientation)
 รู้จักกับ Object
Relationship และ Interaction ระหว่ าง Object คืออะไร
Domain คืออะไร
Concept คืออะไร
รู้จักกับ Class
คุณลักษณะของวิธีการเชิงวัตถุ
แนวคิดเชิงวัตถุ
มีพ้นื ฐานกาเนิดมาจาก ปัญหาหรื อข้อจากัดของการพัฒนาเชิง
กระบวนการ (Procedural approach)
การพัฒนาเชิงกระบวนการ (Procedural approach) โปรแกรมที่ได้จะ
ให้ผลที่ดีกบั งานเฉพาะด้านเท่านั้น ไม่สามารถนาไปใช้กบั งานประเภท
อื่นๆ ได้
แนวคิดเชิงวัตถุ เข้ามามีบทบาทมากขึ้น ทาให้สามารถใช้งานได้อย่าง
เหมาะสมกับโลกแห่งความจริ ง โดยจะใช้ได้กบั งานหลากหลายประเภท
กระบวนการพัฒนาเชิงวัตถุ จะเริ่ มจากการศึกษาความเป็ นไปได้ และการ
วิเคราะห์ระบบเดิมที่มีอยู่ การมองในเชิงวัตถุ (Object)
Procedural approach กับ Object-Oriented
approach
แนวคิดเชิงวัตถุ(Object Orientation)
Orientation มาจากคาว่า Orient แปลว่า นาทาง นาไป
Object Orientation หมายถึง การใช้ Object เป็ นตัวหลักเพื่อการ
พิจารณาความเป็ นจริ งต่างๆที่เกิดขึ้นในโลก
แนวคิดเชิงวัตถุ(Object Orientation) หมายถึง การใช้ Object เป็ นตัว
หลักในการพิจารณาความเป็ นจริ งต่างๆที่เกิดขึ้นในโลก โดยมองทุกสิ่ ง
ในโลกเป็ นวัตถุท้ งั หมด และมองว่ากิจกรรมที่เกิดขึ้นในโลกนี้เกิดจาก
ความสัมพันธ์และปฏิสมั พันธ์ระหว่างวัตถุ
แนวคิดเชิงวัตถุ(Object Orientation)
Attribute
Attribute
Message
Method
Sender
Return Value
Method
Receiver
วิธีการพัฒนาแนว Object-Oriented
แนวคิดของเอลัน เคย์ (Alan Kay)
เป็ นผูห้ นึ่งที่พฒั นาภาษา small Talk ซึ่งเป็ นต้นแบบของการเขียน
โปรแกรมเชิงวัตถุ ได้ให้นิยามของภาษาเชิงวัตถุไว้ดงั นี้
ทุกๆ สิ่ งเป็ นวัตถุ
โปรแกรม คือ กลุ่มของวัตถุที่ส่งสารบอกกันเพื่อทางาน
วัตถุแต่ละวัตถุมีหน่วยความจา
วัตถุตอ้ งมีชนิด
วัตถุที่จดั อยูใ่ นประเภทเดียวกันย่อมได้รับข่าวสารเหมือนกัน
รู้ จักกับ Object
คาว่า อ็อบเจกต์(Object) ถูกนามาใช้อย่างเป็ นทางการครั้งแรกในภาษา
Simula เป็ นการจาลองส่ วนประกอบในโลกจริ งขึ้น
ความหมายของอ็อบเจกต์ นิยามโดย Coad and Yourdon (ปี 1990) กล่าว
ว่า อ็อบเจกต์เป็ นรู ปแบบที่นาเสนอสิ่ งต่างๆ สะท้อนถึงความสามารถ
ของระบบที่จะเก็บข้อมูล และมีการสื่ อสารถึงกันระหว่างอ็อบเจกต์
Rumbaugh และคณะ (ปี 1991) อธิบายอ็อบเจกต์วา่ หมายถึงการรวมกัน
ของข้อมูล และกฏเกณฑ์การทางาน (Logic) ที่แสดงส่ วนประกอบที่
สนใจในโลกจริ ง
รู้จักกับ Object
Object คือ หน่วยสนใจของระบบที่ทาให้เกิดเหตุการณ์บางอย่าง
 สิ่ งสาคัญที่ตอ้ งรู้ในการพัฒนาระบบเชิงวัตถุ คือต้องตอบคาถาม
สาคัญ 2 ข้อ :
 มีออ็ บเจกต์ใดบ้างที่จาเป็ นสาหรับระบบที่กาลังพิจารณา
 อ็อบเจกต์เหล่านั้นเมื่ออยูใ่ นระบบแล้วต้องทาหน้าที่ใดได้บา้ ง
 ตัวอย่างเช่น ใน Windows Application จะมี windows เป็ นอ็อบเจกต์ซ่ ึง
สามารถแสดงข้อมูล (display data) หรื อ รับข้อมูล (accept input)
รู้จักกับ Object
วัตถุบนโลก มี 2 แบบ
 สิ่ งที่จบั ต้องได้
 สิ่ งที่จบั ต้องไม่ได้
 องค์ประกอบของ Object
 Attribute
 Behavior
Attribute ของ Object
คือ คุณสมบัติของ Object เปรี ยบได้กบั ข้อมูลจาเพาะของ object
นั้นที่อธิ บายรู ปร่ างหน้าตาความเป็ น Object ได้
 ตัวอย่าง
 Object คน จะมี attribute คือ หมายเลขบัตรประชาชน, วัน
เกิด, เพศ, ที่อยู่ เป็ นต้น
 Object สุ นขั จะมี attribute คือ ชื่อ, สี , พันธุ์, เป็ นต้น
 Object จักรยาน จะมี attribute คือ gear, คันเร่ ง, ล้อ เป็ นต้น
Method หรือ Behavior ของ Object
 คือ ความสามารถหรื อพฤติกรรมของวัตถุน้ นั ๆ ที่สามารถแสดง
ออกมาได้
ตัวอย่าง
 Object นิสิต สามารถขอเปลี่ยนชื่อหรื อนามสกุลของตนได้
 Object นาฬิกา สามารถบอกเวลาได้
 Object บัญชีธนาคาร สามารถฝากถอนเงินได้
Relationship and Interaction
กิจกรรมที่เกิดขึ้นระหว่าง Object 2 ตัวขึ้นไปมาจาก 2 อย่างคือ
 Relationship คือ ความเกี่ยวข้องกันหรื อ ความสัมพันธ์
ระหว่าง Object 2 ตัวขึ้นไป
 Interaction คือ ปฏิสมั พันธ์หรื อการกระทาใด ๆ ที่เกิดขึ้น
ระหว่าง Object 2 ตัวขึ้นไป
ตัวอย่ าง Relationship
 ตัวอย่าง Relationship ต่าง ๆ ในชีวิตประจาวัน
 ความเป็ นแม่กบั ลูก
 สามีรักภรรยา
 นายกบริ หารประเทศ
 ตารวจทางานอยูท่ ี่สถานีตารวจ
 น้ าอยูใ่ นทะเล
 ตารวจใส่ เครื่ องแบบ
 ปากกาอยูบ่ นโต๊ะทางาน
 นักเรี ยนลงทะเบียนเรี ยน
Interaction
Interaction คือ ปฏิสมั พันธ์หรื อการกระทาใด ๆ ที่เกิดขึ้น
ระหว่าง Object 2 ตัวขึ้นไป เช่น
 การสร้าง
 การเปลี่ยนแปลง
การเล่น
ตัวอย่ างสิ่ งที่เกิดจาก Objects
คนรับประทานอาหาร
Interaction : รับประทาน
Relationship : เป็ นเจ้าของ
สุ นขั เล่นกับแมว
Interaction : เล่น
Relationship : เป็ นเพื่อน
ตัวอย่ าง
นาย ก เปิ ดตูเ้ ย็นยีห่ อ้ A แล้วหยิบน้ ามาดื่ม
Objects
นาย ก
ตูเ้ ย็นยีห่ อ้ A
น้ า
Relationships
นาย ก เป็ นเจ้าของตูเ้ ย็นยีห่ อ้ A
น้ าอยูใ่ นตูเ้ ย็นยีห่ อ้ A
ตัวอย่ าง
Interactions
 นาย ก เปิ ดตูเ้ ย็นยีห่ อ้ A
 นาย ก หยิบน้ า
 นาย ก ดื่มน้ า
Domain หรือ Problem Domain คืออะไร
คือ กรอบของความสนใจที่มีต่อ object นั้น หรื อระบบที่เราสนใจ
เราไม่สามารถสนใจในทุก ๆ วัตถุในโลกในเวลาเดียวกันได้
เราไม่สามารถให้ความสนใจกับทุกความสัมพันธ์ และทุก ๆ
กิจกรรมหรื อการกระทาที่เกิดขึ้นได้
ใน Domain หนึ่งสามารถมี Objects ได้ต้ งั แต่ 2 ตัวขึ้นไปจนถึง
นับไม่ถว้ น
Object ตัวหนึ่ง ๆ สามารถอยูไ่ ด้ในหลาย ๆ Domain
Concept คืออะไร
หมายถึง ความคิดรวบยอดที่เรามีให้กบั วัตถุน้ นั ๆ ภายในกรอบที่
กาหนด
ตัวอย่าง
ต้องการให้ Concept กับรถยนต์ นัน่ คือ รถทุกคันต้องมี
ตัวถัง มีลอ้ และมีเครื่ องยนต์
เมื่อต้องการให้ Concept เกี่ยวกับ สุ นขั ( สุ นขั ปกติทวั่ ไป )
นัน่ คือ สุ นขั ทุกตัวต้องมี 4 ขา มีขน มีหาง สามารถเห่า และ
กัดได้เหมือนกันทุกตัว
รู้จักกับ Class
 คลาส เป็ นการจัดกลุ่มให้แก่ Object ต่างๆ ที่มีคุณสมบัติหรื อ
พฤติกรรมบางอย่างเหมือนกัน
 การจัดกลุ่มอ็อบเจกต์เป็ นคลาสจะจัดโดยรวมอ็อบเจกต์ของสิ่ ง
เดียวกันหรื อสิ่ งที่มีลกั ษณะและพฤติกรรมเหมือนกัน
 เช่น Honda City สี แดง, รถตูร้ ับส่ งนักเรี ยน, รถบรรทุกฮีโน่ 6
ล้อ, Toyota Wish สี ดา และอื่นๆ ต่างก็เป็ นพาหนะ ดังนั้น
ตัวอย่างรถทั้งหมดจึงอยูใ่ นคลาส VEHICLE
22
รู้จักกับ Class
Class เป็ นเหมือนพิมพ์เขียวของ Object
 Class ถือเป็ นนามธรรม (Abstraction) ไม่สามารถนาคลาสไป
ดาเนินการใดๆ ได้ แต่ Object สามารถทางานได้
เวลาใช้งานจะไม่ใช้งาน Class ตรงๆ แต่จะมีการสร้างสิ่ งที่
เรี ยกว่า Instance ของคลาสขึ้นมาใช้งานแทน
กลไกดังกล่าวทาให้สามารถใช้คลาสๆ เดียว แต่สร้าง Instance
ของคลาสไปทางานได้หลาย Instance
Instance ของ Class ก็คือ Object
23
ตัวอย่ างการกาหนดคลาสให้ แก่ ออบเจ็กต์
คลาส
บุคลากร
ปฎิกิริยาทางเคมี
แม่น ้า
เครื่ องเขียน
กีฬา
ออบเจ็กต์
นางสาว ดาวใจ สุดสวย
เหล็กขึ ้นสนิม
เจ้ าพระยา
ดินสอ 2B
บาสเก็ตบอล
24
สรุปนิยาม Object และ Class
Class เป็ นเหมือนส่ วนของแม่พิมพ์ เพื่อบอกลักษณะว่าวัตถุใน Class นี้มี
ลักษณะและพฤติกรรมเป็ นอย่างไร
Object เป็ นสิ่ งที่ถูกสร้างขึ้นมาจาก Class เพื่อใช้งาน กาหนดค่าต่างๆ ส่ ง
ข้อความสัง่ ให้ Object ทางาน
คลาสสี่ เหลีย่ มผืนผ้า
คุณสมบัติ:กว้าง, ยาว
เมธทอด:คานวณพื้นที่
วัตถุA:สี่ เหลีย่ มผืนผ้า
กว้าง 2 ยาว 3
เมธทอด:คานวณพื้นที่
คุณลักษณะของวิธีการเชิงวัตถุ
Abstraction & Instantiation
Encapsulation
Hierarchy
Inheritance
Polymorphism
26
Abstraction & Instantiation
Abstraction : กระบวนการในการให้ Concept กับ Object จน
เกิดเป็ น class
ในทางปฏิบตั ิจะต้องพยายามให้ Concept ของทีมพัฒนาระบบ
เป็ นไปในแนวทางเดียวกัน เพื่อให้ได้ระบบงานตรงตามที่
ต้องการจริ งๆ
Instantiation : กระบวนการของการทาให้เกิด Object จาก Class
มีการใช้คาว่า Instance แทนการระบุถึง Object ที่ช้ ีเฉพาะเจาะจง
และมีอยูใ่ นระบบ เช่น Instance นิสิตนายสมชาย
27
ภาพตัวอย่ างของ Abstraction
28
Encapsulation
เป็ นกลไกที่ใช้ซ่อนสารสนเทศบางอย่างไว้ใน Object โดยจะไม่ ทราบ
ว่าการทางานต่างๆ ของออบเจ็กต์มีการทางานอย่างไร
ลักษณะการห่อหุม้ Attribute และ Methods เข้าไว้ดว้ ยกัน
Encapsulation จะทาหน้าที่ป้องกันมิให้ Object อื่นที่อยูภ่ ายนอก เข้าถึง
Object หนึ่งๆ ได้อย่างอิสระ จะมีเฉพาะ Methods ที่อยูใ่ น Object
เท่านั้นจะสามารถติดต่อกับ Attribute ที่อยูใ่ น Object เดียวกันได้
ผูใ้ ช้ออบเจ็กต์จะไม่มีสิทธิ์เข้าไปแก้ไขในส่ วนนี้ได้
ข้อดีของ Encapsulation คือการป้ องกัน Attribute ของ Object จากความ
เสี ยหาย
29
Encapsulation
กลไกการปกป้ องข้อมูลและวิธีการทางานของ Object สามารถ
เป็ น
Public (+) ซึ่งสามารถเข้าถึงได้โดยตรงจากภายนอก
Private (-) ซึ่งจะถูกใช้งานจากภายใน Class เท่านั้น
Protected (#) ซึ่งจะสามารถเห็นหรื อเข้าถึงได้จากภายใน
Subclass เท่านั้น
Hierarchy
หมายถึง การลาดับชั้นของ Object เป็ นการนา Object มาจัด
กลุ่ม และสร้างลาดับความสัมพันธ์
ตัวอย่างเช่น เมื่อพูดถึงสัตว์ เราอาจแบ่งเป็ น 2 ประเภท คือ
แมลง และสัตว์เลี้ยงลูกด้วยนม
แมลง อาจจาแนกได้เป็ น ผึ้ง ผีเสื้ อ ตัก๊ แตน
สัตว์เลี้ยงลูกด้วยนม อาจจาแนกได้เป็ น กระต่าย ช้าง แมว
เป็ นต้น
31
Hierarchy
ลักษณะการจัดกลุ่ม และสร้างลาดับความสัมพันธ์ของ
Hierarchy จากตัวอย่างจะมีลกั ษณะดังรู ป
32
Inheritance
 คือ คุณสมบัติที่ Class ๆ หนึ่งสามารถสื บลักษณะของ
Attribute และ Method ของอีก Class หนึ่งได้
การทาเช่นนี้ทาให้คุณสามารถสร้าง Class ใหม่ข้ ึนโดยนา
สาระสาคัญ ที่เหมือนกันของ Attribute และ Behavior (Method)
จาก Class อื่นมาใช้ได้
Object ของคลาสที่ถูกจาแนกออกเป็ น Class ย่อยสามารถสื บ
ทอด Attribute และ Method หลักไปได้และสามารถเพิ่มเติม
Attribute และ Method จาเพาะสาหรับการเป็ น Class ย่อย ได้ดว้ ย
ตัวอย่ าง Inheritance
 เช่น คลาสพนักงาน มี Attribute ดังนี้
 รหัสพนักงาน , ชื่อ, วันเดือนปี ที่รับเข้าทางาน, ตาแหน่งปัจจุบนั เป็ นต้น
 มี method ดังนี้
 จ่ายค่าตอบแทน, การเปลี่ยนชื่อ, การเลื่อนขั้น เป็ นต้น
 มี subclass คือ ลูกจ้างรายวัน กับพนักงานประจา
 สิ่ งต่างกันระหว่างลูกจ้างรายวันกับพนักงานประจา คือ ลูกจ้างรายวันมีการ
บันทึกวันมาทางาน ส่ วนพนักงานประจา มีการบันทึกวันลา ชัว่ โมงทางาน
ยืน่ ใบลาได้
 ดังนั้น ทั้ง 2 subclass สามารถสื บทอด (Inherit) Attribute และ Method มา
จาก Class พนักงาน ได้
Inheritance
การสื บทอดคุณสมบัติ (Inheritance) มีขอ้ ดีดงั นี้
1. ทาให้มีโครงสร้างที่เป็ นระบบ ระเบียบ ปรับเปลี่ยนได้ง่าย
2. ลดเวลาในการพัฒนาระบบ
3. ลดค่าใช้จ่ายในการพัฒนา
การสื บทอดโดยอาศัยคุณสมบัติของ Object ที่มีอยูแ่ ล้วใส่ ลงใน
ออบเจ็กต์ตวั ใหม่ หลักของการสื บทอดคุณสมบัติเป็ นลาดับชั้น จะทา
ให้ความสัมพันธ์ระหว่าง Object มีความชัดเจนยิง่ ขึ้น
Polymorphism
เป็ นการที่ Object ที่อยูใ่ น Subclass นั้นสามารถมีพฤติกรรมโดย
ความหมายและวัตถุประสงค์อย่างเดียวกัน แต่รายละเอียดการดาเนินการ
นั้นแตกต่างกัน เมื่อมีการเรี ยกใช้กิจกรรมนั้นก็จะไปเรี ยกตาม Subclass
ที่ Object นั้นสังกัดอยู่
ตัวอย่างเช่น ในแง่ของการเขียนโปรแกรม เช่น ถ้าเราส่ ง message + ไป
ให้ 25 กับ 2
ถ้า 25 กับ 2 เป็ นตัวเลข จะหมายถึงการเอาตัวเลขมาบวกกัน จะได้
ผลลัพธ์เป็ น 27
ถ้า 25 กับ 2 เป็ นสตริ ง จะหมายถึงการรวมตัวอักษร (Concat)
ผลลัพธ์ที่ได้จะได้เป็ น 252 เป็ นต้น
36
ตัวอย่ าง Polymorphism
Class รู ปสี่ เหลี่ยม กับ Class รู ปสามเหลี่ยม ได้รับการสื บทอดคุณสมบัติ
จาก Class รู ปหลายเหลี่ยม โดยทั้งคู่มี Method ที่ชื่อ draw() เหมือนกัน
แต่เมื่อมีการเรี ยกใช้ Method ดังกล่าว Object ที่สร้างจาก Class รู ป
สี่ เหลี่ยมจะมีการวาดรู ปสี่ เหลี่ยม ขณะที่ Object ที่สร้างจาก Class รู ป
สามเหลี่ยมจะมีการวาดรู ปสามเหลี่ยม
ตัวอย่ าง Polymorphism
DrawChart( )
2a:=cal()
PaySlip
2b:=cal()
2c:=cal()
:HourlyPaidEmployee
:WeeklyPaidEmployee
:MonthlyPaidEmployee
ความสั มพันธ์ ระหว่ างคลาส
 ความสัมพันธ์แบบ Association
 ความสัมพันธ์แบบ Aggregation /Composition
 ความสัมพันธ์แบบ Generalization
ความสั มพันธ์ แบบ Association
Association เป็ นความสัมพันธ์ระหว่างคลาสต่าง ๆ ในระบบ ที่เกิด
จากการที่ออ็ บเจกต์ในคลาส นั้นสามารถมีปฏิสมั พันธ์กนั
 การมีความสัมพันธ์กนั ระหว่างคลาสจะต้องบอกชื่อความสัมพันธ์
พร้อมระบุจานวนการเข้าร่ วมในความสัมพันธ์ (multiplicity) ของ
อ็อบเจกต์ในแต่ละคลาส ว่าอ็อบเจกต์ของคลาสหนึ่งจะสัมพันธ์กนั ได้
กับกี่ออ็ บเจกต์ของอีกคลาสหนึ่ง
 ความสัมพันธ์อาจเป็ นแบบหนึ่งต่อหนึ่ง หรื อหนึ่งต่อหลาย หรื อใน
จานวนจากัดที่เฉพาะเจาะจง เช่น หนึ่งต่อสาม เป็ นต้น
Association
41
สั ญลักษณ์ ในการแสดงความสั มพันธ์ แบบ Association
 เส้นแสดงความสัมพันธ์ เป็ นเส้นตรงเชื่อมโยง (link) ระหว่างคลาสที่สัมพันธ์
กัน
 ชื่อความสัมพันธ์ เขียนกากับข้างเส้นความสัมพันธ์
 Multiplicity หรื อจานวนหน่วยที่เข้าร่ วมในความสัมพันธ์กบั อ็อบเจกต์หนึ่งๆ
ได้ ซึ่งอาจแสดงได้หลายกรณี
 มีค่าแน่ชดั ค่าเดียว ระบุตวั เลขค่านั้นไว้ เช่น 3
 มีจานวนระหว่างตัวเลข 2 ชุด เช่น 1 ถึง 5 หน่วย ให้ระบุเป็ นเลขจานวนเต็มบวก 2
ตัวคัน่ ด้วย .. ในกรณี น้ ีเขียนว่า 1..5
 มีจานวนไม่จากัด แสดงด้วย * หรื อ 0..*
 ถ้ามีจานวนเป็ นไปได้หลายกรณี ให้บอกผสมกันได้ เช่น 1...3, 7...10, 15, 19...*
ตัวอย่ างความสั มพันธ์ แบบ Association
 ความสัมพันธ์ระหว่าง Object หรื อ Class แบบ 2 ทิศทาง
work for
0..*
Employee
Company
1..*
hire
own
Person
0..*
Car
1..*
is owned by
ความสั มพันธ์ แบบ Aggregation
 เป็ นความสัมพันธ์แบบพิเศษของ association
 เป็ นความสัมพันธ์ระหว่างคลาส ในแง่ของการเป็ นส่ วนประกอบกัน (part-whole
relationship)
 คลาสที่มีส่วนประกอบนับเป็ นคลาสใหญ่ (superset class) หรื อ whole หรื อ
aggregate ส่ วนคลาสที่เป็ นส่ วนประกอบของคลาสใหญ่ เรี ยกว่า คลาสย่อย (subset
class) หรื อ ส่ วนประกอบ (part)
Car
Engine
Body
Whole
Wheel
Part
Aggregation ของรถเก๋ ง
45
ความสั มพันธ์ แบบ Composition
• เป็ นความสัมพันธ์แบบเฉพาะของ aggregation ซึ่งมีความขึ้นอยูก่ บั การดารงอยู่
ของผูอ้ ื่น (existence dependency)
• หมายถึงการมีชีวิตอยูข่ องส่ วนประกอบ (part)ที่เป็ นคลาสย่อย ขึ้นอยูก่ บั การมี
ชีวิตอยูข่ องคลาสใหญ่ หรื อ whole หรื อในที่น้ ีเรี ยกว่า composite
• เมื่อคลาสใหญ่ถูกทาลาย คลาสย่อยจะไม่สามารถดารงอยูไ่ ด้ดว้ ยตัวเอง จึงถูก
ทาลายไปด้วย
• สัญลักษณ์ที่ใช้ คือ เส้นเชื่อมคลาสซึ่งมีรูปสี่ เหลี่ยมเพชรแบบทึบอยูท่ ี่ปลายของ
คลาสใหญ่
ตัวอย่ างความสั มพันธ์ แบบ Composition
 ความสัมพันธ์ระหว่างเมาส์กบั ลูกกลิ้งของเมาส์
 ความสัมพันธ์ระหว่างร่ างกายกับอวัยวะของคน
เมาส์
ลูกกลิ้งเมาส์
ความสั มพันธ์ แบบ Composition
 ข้อดีของ Composition มีดงั นี้
1.ทาให้ระบบมีความซับซ้อนน้อยที่สุด
2.Composition มีส่วนช่วยในการ reuse
3.การแบ่งระบบออกเป็ นส่ วนการทางานย่อยๆนั้น ส่ วนต่างๆ จะ
สามารถทางานได้เป็ นอิสระต่อกันส่ งผลให้การทดสอบและ
ปรับปรุ งแก้ไขแต่ละส่ วนสามารถทางานได้อย่างอิสระ
Generalization
 เป็ นการจัดกลุ่มของ attribute และ Method ที่เป็ นคุณลักษณะ
ทัว่ ไปของหลายๆ คลาสเข้าด้วยกันเป็ นคุณลักษณะของคลาส
ทัว่ ไป(general class)
กระบวนการย้อนกลับของ Generalization เรี ยกว่า
Specialization (เป็ นการตอบคาถามว่าใน Class หนึ่งๆ สามารถ
จาแนกเป็ น Class อะไรได้บา้ ง)
49
Generalization และ Specialization
ของรถยนต์ และรถสปอร์ ต
50
Generalization และ Specialization
ของทีพ่ กั อาศัย บ้ านทาวน์ เฮาส์ และอพาร์ ตเม้ นต์
51
คาถามท้ ายบท
1. จงให้ Concept ของคอมพิวเตอร์ โดยแสดงการทา Classification
Abstraction เพื่อให้เกิดเป็ น Class คอมพิวเตอร์
จงแสดงความสัมพันธ์ในเชิง Aggregation ของคอมพิวเตอร์
จงเขียนความสัมพันธ์ของคอมพิวเตอร์ในเชิง Generalization และ
Specialization
 จงเขียนความสัมพันธ์ของเครื่ องพิมพ์ และผูใ้ ช้งานในการทา
Association Abstraction