Transcript
Page 1: Unit01 - Object - Oriented System Analysis

หนวยที่ 1: แนวคิดเชิงวัตถุ(Object-Orientation)

ดร.สุขสถิต มีสถิตยการวิเคราะหและออกแบบเชิงวัตถุ2/2550

Page 2: Unit01 - Object - Oriented System Analysis

OOAD 2/2550 ดร.สุขสถิต มสีถิตย 2

วัตถุประสงคเพื่อใหนกัศึกษาเขาใจลักษณะพื้นฐานของระบบเชงิวัตถุ

เพื่อใหนกัศึกษาเขาใจหลักการเชงิวัตถุ

Page 3: Unit01 - Object - Oriented System Analysis

OOAD 2/2550 ดร.สุขสถิต มสีถิตย 3

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

แนวคิดเชงิวัตถุเปนเทคนคิในการจําลองระบบระบบถูกจาํลองในรูปของกลุมออบเจ็คที่ปฏิสมัพันธกันประโยชนเขาใจงาย - ลดชองวางระหวางระบบจริงและระบบที่จําลองโดยคอมพวิเตอรงายตอการแกไข - เพราะขอมูลและการทาํงานอยูภายในออบเจ็ค

Page 4: Unit01 - Object - Oriented System Analysis

OOAD 2/2550 ดร.สุขสถิต มสีถิตย 4

ภาพตวัอยางของระบบเชิงวัตถุCustomer

Mary

Customer Bill

Order 563

Customer Joe

Chair 213

Order 143

Order 721

Chair 654

Lamp 453

Lamp 856

Button

Text Box

Label

create

get text

display

add new order

add to order

add to order

Page 5: Unit01 - Object - Oriented System Analysis

OOAD 2/2550 ดร.สุขสถิต มสีถิตย 5

หลกัการเชิงวัตถุ (Object-Oriented Concepts)

ออบเจ็ค (Object)คลาส (Class)เอ็นแค็ปซุเลชัน (Encapsulation) และ การซอนรายละเอียด (Information Hiding)การสืบทอดคุณสมบัติ (Inheritance)โพลีมอรฟซึม (Polymorphism)

Page 6: Unit01 - Object - Oriented System Analysis

OOAD 2/2550 ดร.สุขสถิต มสีถิตย 6

ออบเจ็ค (Object)

ออบเจ็ค คือสิ่งที่สามารถจดจําสถานะ (state) (หรือขอมลู (information)) และแสดงพฤติกรรม (behavior) เพื่อสํารวจสถานะ กระทาํงานที่มีผลกระทบกบัสถานะ หรือกระทาํงานอื่นๆออบเจ็ค ถูกสรางขึน้มาเพื่อเปนตัวแทนของสิง่ตางในสถาวะจริงของระบบในโลกของซอฟตแวร

Page 7: Unit01 - Object - Oriented System Analysis

OOAD 2/2550 ดร.สุขสถิต มสีถิตย 7

การจําลองระบบในเชิงวัตถุ

ของจริง

แบบจําลอง

บาน

รถยนตทิชา

อาศัยอยูในขับ

บาน รถยนต

ทิชา

Page 8: Unit01 - Object - Oriented System Analysis

OOAD 2/2550 ดร.สุขสถิต มสีถิตย 8

ออบเจ็ค และ แอบสแตร็กชัน

แอบสแตร็กชัน (Abstraction)หมายถึง การจํากัดรายละเอียดเปนกระบวนการในการละเวนรายละเอียดที่ไมเกี่ยวของและ เนนรายละเอียดที่จําเปน

ออบเจ็ค เปนแอบสแตรกชนั (Abstraction) ของสิ่งตางๆ เพือ่จําลองสิง่นั้นไวในระบบคอมพิวเตอร

ออบเจ็คแตละตัวจะมีพฤติกรรมและขอมูลของออบเจ็คที่มันเปนตัวแทน และมเีฉพาะดานที่เกีย่วของกับระบบเทานั้น

Page 9: Unit01 - Object - Oriented System Analysis

OOAD 2/2550 ดร.สุขสถิต มสีถิตย 9

ตัวอยางของแอบสแตรก็ชัน

Page 10: Unit01 - Object - Oriented System Analysis

OOAD 2/2550 ดร.สุขสถิต มสีถิตย 10

คลาส (Class)คลาส คือ ตนแบบ หรือแมพิมพ (Template) สําหรับสรางออบเจ็คคลาส เปนขอกําหนดลกัษณะรวมกันของออบเจค็ประเภทเดียวกันคลาส อธิบายโครงสรางภายในของออ็บเจ็ค ประกอบดวยโอเปอรชนัและโครงสรางขอมูลอินสแตนซ (Instance) คือ ออบเจ็คที่สรางจากคลาส

Page 11: Unit01 - Object - Oriented System Analysis

OOAD 2/2550 ดร.สุขสถิต มสีถิตย 11

คลาส และ ออบเจ็คคลาสกําหนดลักษณะโครงสรางของออบเจ็คโครงสรางที่ใชในการเก็บขอมลูบงบอกสถานะของออบเจ็ค ในรูปของกลุมแอททริบวิ (attribute)พฤติกรรมทีอ่อบเจ็คกระทาํไดในรูปกลุม โอเปอรชนั (operation)

ออบเจ็คของคลาสเดียวกันมลีักษณะโครงสรางภายในเหมอืนกนั แตจะขอมูลทีเ่ก็บจะตางกันขึน้อยูกับสถานะของออบเจค็แตละตัว ซึ่งถกูกําหนดผานโอเปอรชนัของออบเจค็ออบเจ็ค แตละตัวจะมีไอเด็นทติี้ (identity) ไมซ้ํากัน

Page 12: Unit01 - Object - Oriented System Analysis

OOAD 2/2550 ดร.สุขสถิต มสีถิตย 12

ตัวอยาง คลาส และ ออบเจ็ค

+เดิน()+ยืน()+ยิ้ม()

-ชื่อ-อายุ-เบอรโทรศัพท

บุคคล

ออบเจ็คของ

ออบเจ็คของ

Page 13: Unit01 - Object - Oriented System Analysis

OOAD 2/2550 ดร.สุขสถิต มสีถิตย 13

เมสเสจ (Message)

เมสเสจ คือขอมูลทีส่งไปยังออบเจ็คเพื่อสัง่ใหทํางานระบบเชงิวัตถุทํางานโดยอาศัยการปฏิสมัพันธระหวางออบเจ็ค หมายถึงการทีอ่อบเจค็สงเมสเสจไปถึงกนัโดยออบเจ็คที่ไดรับเมสเสจจะทํางานตามที่ไดรับการรองขอ โดยการเรียกโอเปอรชนัที่ตรงกับที่เมสเสจสงมาทํางานการสงเมสเสจ = การเรียกใชโอเปอรชนัของออบเจ็คอื่น

Page 14: Unit01 - Object - Oriented System Analysis

OOAD 2/2550 ดร.สุขสถิต มสีถิตย 14

เอ็นแคปซุเลชัน (Encapsulation)

หมายถึง สิ่งทีม่องเห็นจากภายนอกของออบเจ็ค คืออินเตอรเฟซ (interface)อินเตอรเฟซ คือโอเปอรชนัทีส่ามารถเรยีกใชจากออบเจ็คไดเพราะ กระบวนการทํางานและขอมูลถกูรวมไวดวยกันภายในออบเจ็คโดยการจัดการกับขอมูลภายในออบเจ็คตองทําผานการเรียกใชโอเปอรชนัของออบเจค็

Page 15: Unit01 - Object - Oriented System Analysis

OOAD 2/2550 ดร.สุขสถิต มสีถิตย 15

การซอนรายละเอียด (Information Hiding)

หมายถึงการเปดเผยเฉพาะขอมลูที่จาํเปนตอการใชซอฟตแวรโมดูล (software module) เทานัน้ออบเจ็ค รองรับการซอนรายละเอียด เพราะออบเจค็ซอนโครงสรางภายในจากสิ่งภายนอก

Page 16: Unit01 - Object - Oriented System Analysis

OOAD 2/2550 ดร.สุขสถิต มสีถิตย 16

การสืบทอดคุณสมบัติ (Inheritance)

เปนวธิีการในการออกแบบสิ่งสองสิ่งหรือมากกวาที่ตางกัน แตมีลักษณะบางอยางเหมือนกนัโดยกําหนดลักษณะสวนที่เหมือนกนัไวใน ซุปเปอรคลาส (Superclass) หนึ่งคลาส แลวกําหนดใหคลาสอืน่ๆ เรยีกวา ซับคลาส (Subclasses) มารับนี้ลักษณะสืบทอดตอไปเปนของตัวเอง หมายความวา ซับคลาสมีแอททริบวิและโอเปอรชนัทีร่ับมาจากซุปเปอรคลาสคุณสมบัติสามารถสืบทอดตอลงไปไดหลายลําดับชัน้ เนื่องจาก ซับคลาสสามารถเปนซุปเปอรคลาสของคลาสอื่น ทําใหเกิดลําดับชัน้การสืบทอดคุณสมบัติ (Inheritance hierarchy)

Page 17: Unit01 - Object - Oriented System Analysis

OOAD 2/2550 ดร.สุขสถิต มสีถิตย 17

ตัวอยางลําดับชั้นการสืบทอดคุณสมบัติ (Inheritance Hierarchy)

ยานยนต

จักรยานยนต รถบรรทุก

รถยนตสวนบุคคล รถยนตโดยสาร

รถยนต

Page 18: Unit01 - Object - Oriented System Analysis

OOAD 2/2550 ดร.สุขสถิต มสีถิตย 18

โพลีมอรฟซึ่ม (Polymorphism)

แปลวาหลายรูปแบบใน OO หมายถึงการทีอ่อบเจค็ตางคลาสกันทํางานตอบสนองตอเมสเสจที่เหมอืนกนัในรูปแบบที่แตกตางกันอยางเหมาะสมทําใหสามารถใชงานออบเจ็คโดยไมตองทราบคลาสของออบเจ็ค

Page 19: Unit01 - Object - Oriented System Analysis

OOAD 2/2550 ดร.สุขสถิต มสีถิตย 19

ขอดขีองการใชแนวคิดเชิงวัตถุในการพัฒนาระบบความเปนธรรมชาติ (Naturalness)

คลาส ออบเจ็ค โอเปอรชนั และเมสเสจ ทําใหมุมมองในการพัฒนาซอฟตแวรสอดคลองกับการมองสิ่งตางๆ ของมนุษยโดยทัว่ไปการใชซ้ํา (Reusability)

คลาส ออบเจ็ค โอเปอรชนั เมสเสจ เอ็นแคปซุเลชนั และการซอนรายละเอียด ชวยใหออบเจ็คงายตอการใชงานซ้ํา การสืบทอดคณุสมบัติสงเสริมใหเกิดการใชโคดซ้ําชวยลดระยะเวลาในการพฒันาซอฟตแวรความงายในการบํารุงรักษา (Maintainability)

เอ็นแคปซุเลชนั การซอนรายละเอียด และโพลีมอรฟซึ่ม ชวยลดผลกระทบทีจ่ะเกิดขึ้นเมื่อมีการแกไขซอฟตแวร

Page 20: Unit01 - Object - Oriented System Analysis

OOAD 2/2550 ดร.สุขสถิต มสีถิตย 20

ประโยชนของหลกัการเชิงวัตถุ

ประโยชนหลกัการ

ออบเจ็คที่ใชซ้าํไดชวยลดผลกระทบจากการเปลีย่นแปลง

เอ็นแคปซุเลชนั และการซอนรายละเอียด

ทําใหมมุมองในการพัฒนาซอฟตแวรสอดคลองกับธรรมชาติออบเจ็คที่ใชซ้าํได

คลาส ออบเจ็ค โอเปอรชนั และเมสเสจ

Page 21: Unit01 - Object - Oriented System Analysis

OOAD 2/2550 ดร.สุขสถิต มสีถิตย 21

ประโยชนของหลกัการเชิงวัตถุ

ชวยลดความซับซอนในการเขียนโปรแกรมเกี่ยวกับเหตุการณชวยลดผลกระทบจากการเปลีย่นแปลง

โพลมีอรฟซึม่

ลดความซ้ําซอนลดระยะเวลาในการสรางคลาสใหมชวยใหเกดิมาตรฐานและความตรงกันในโปรแกรม

การสืบทอดคุณสมบัติ

ประโยชนหลกัการ


Recommended