18
Chapter Chapter 2 2 Abstrac Abstrac tions tions

Chapter 2 Abstractions

  • Upload
    torn

  • View
    31

  • Download
    2

Embed Size (px)

DESCRIPTION

Chapter 2 Abstractions. จุดประสงค์ 1. เพื่อให้นักศึกษาได้เข้าใจความหมายและความสำคัญของ Abstraction ที่มีต่อ OOAD 2. เพื่อให้นักศึกษาทำความเข้าใจเบื้องต้นเกี่ยวกับ Abstraction แบบต่างๆ ได้แก่ Classification, Aggregation, Generalization และ Association. 2.1 Abstractions. - PowerPoint PPT Presentation

Citation preview

Page 1: Chapter  2  Abstractions

ChaptChapterer 2 2

AbstraAbstractionsctions

Page 2: Chapter  2  Abstractions

จุ�ดประสงค์� 1. เพื่��อให้�นั�กศึ�กษาได�เข้�าใจุค์วามห้มายและค์วาม

ส"าค์�ญข้อง Abstraction ที่%�ม%ต่'อ OOAD

2. เพื่��อให้�นั�กศึ�กษาที่"าค์วามเข้�าใจุเบื้�)องต่�นัเก%�ยวก�บื้ Abstraction แบื้บื้ต่'างๆ ได�แก'

Classification, Aggregation, Generalization และ Association

Page 3: Chapter  2  Abstractions

2.1 Abstrac

tionsเราได�ร+�จุ�กก�บื้ Class (เร%ยกอ%กอย'างห้นั��งว'า Abstract Data Type) ซึ่��งห้มายถึ�งกล�'มข้อง

Objects ที่%�ม%ค์วามเห้ม�อนัห้ร�อค์ล�ายค์ล�งก�นัในัแง'ใดแง'ห้นั��ง ห้ร�อในัห้ลายๆ แง' โดยส/�งที่%�ใช้�ในัการก"าห้นัด

ค์วามเห้ม�อนัห้ร�อค์ล�ายค์ล�งด�งกล'าวนั�)นัก1ค์�อ Concept นั��นัเอง เราสามารถึบื้อกได�ว'า Object ในั Class เด%ยวก�นั ล�วนัแล�วแต่'ม% Concept เด%ยวก�นั

โดยข้�)นัอย+'ก�บื้ Domain ที่%�เราก"าห้นัด

Page 4: Chapter  2  Abstractions

กระบื้วนัการในัการให้� Concept ก�บื้ Objects ต่'างๆ ในั Real World เพื่��อสร�าง

Class นั�)นั เราเร%ยกว'า Abstractions ซึ่��งแบื้'งออกได� 4 กระบื้วนัการย'อยๆ ค์�อ1. Classification Abstraction

2. Aggregation Abstraction

3. Generalization Abstraction

4. Association Abstraction

Page 5: Chapter  2  Abstractions

การใช้�งานั Abstraction เพื่��อการว/เค์ราะห้� Problem Domain นั�)นั ไม'ได�ม%ข้�อก"าห้นัดต่ายต่�ว

ว'าในั Problem Domain ห้นั��งๆ จุะต่�องใช้�ที่�ก Abstraction ห้ร�อ จุะใช้� Abstraction ต่าม

ล"าด�บื้ก'อนัห้ร�อห้ล�งอย'างไร แต่'ส'วนัมากแล�ว Classification ม�กจุะเป2นั Abstraction แรก

ที่%�ถึ+กใช้� ห้ล�งจุากนั�)นัจุะข้�)นัอย+'ก�บื้ม�มมองและว/จุารณญาณข้องผู้+�ว/เค์ราะห้�ออกแบื้บื้ระบื้บื้ ที่%�จุะใช้� Abstraction ใดที่%�เห้มาะสมเพื่��อการว/เค์ราะห้� Problem Domain และในัค์วามจุร/งพื่บื้ว'า

Abstraction ห้นั��งๆ นั�)นัม�กจุะถึ+กใช้�มากกว'า 1ค์ร�)งเสมอ เพื่��อการว/เค์ราะห้� Problem Domain

เพื่%ยงห้นั��งเด%ยว

Page 6: Chapter  2  Abstractions

22.Classification Abstraction

Classification Abstraction เป2นักระบื้วนัการที่%�ใช้�เพื่��อแยกประเภที่ (Classify) Object

ต่'างๆ ที่%�อย+'ในั Domain และให้� Concept ก�บื้ Object ต่'างๆ เห้ล'านั�)นั เพื่��อให้�ได� “Class พื่�)นัฐานั ”

(Fundamental Classes) ที่%�ต่�องการต่�วอย'าง พื่/จุารณาส/�งที่%�อย+'ในั Problem

Domain ซึ่��งได�แก' (1) รถึยนัต่�นั��งโต่โยต่�า (2) รถึจุ�กรยานัยนัต่�ซึ่+ซึ่+ก/ และ (3) รถึโดยสาร 6 ล�อ

Volvo (4) เร�อซึ่%ที่รานัส�ค์ว%นัส� (5) ห้�วรถึจุ�กรไอนั")า Dodge และ (6) จุ�กรยานั BMX จุะพื่บื้ว'า

Concept ที่%�เห้ม�อนัก�นัข้อง (1) รถึยนัต่�นั��งโต่โยต่�า (2) รถึจุ�กรยานัยนัต่�ซึ่+ซึ่+ก/ และ (3) รถึโดยสาร 6 ล�อ

Volvo ก1ค์�อ ม%เค์ร��องยนัต่� ม%ล�อจุ"านัวนัห้นั��ง สามารถึว/�งไปบื้นัถึนันัได� และใช้�นั")าม�นัห้ร�อแก7สเป2นัพื่ล�งงานัในัการข้�บื้เค์ล��อนั เพื่ราะฉะนั�)นัเราสามารถึให้� Concept

ก�บื้ (1) (2) และ (3) ว'าเป2นั “Class รถึยนัต่� ด�วย”กระบื้วนัการ Classification ด�งร+ป

Page 7: Chapter  2  Abstractions

Concepts เก%�ยวก�บื้รถึ1.ม%เค์ร��องยนัต่� 2. ม%ล�อจุ"านัวนัห้นั��ง

3.ว/�งไปบื้นัถึนันัได�4.ใช้�แก7สห้ร�อนั")าม�นัเป2นัเช้�)อ

เพื่ล/ง

รถึจุ�กรยานัยนัต่�ซึ่+ซึ่+ก/

รถยนต์�น��งโต์โยต์�า

รถโดยสาร 6ล้�อ Volvo

เร�อซึ่%ที่รานัส�ค์ว%นัส�ไม'ม%

ล�อห้�วรถึจุ�กรไอนั")าว/�งไปบื้นัถึนันัไม'ได�

รถึจุ�กรยานั BMXไม'ต่�องใช้�เช้�)อ

เพื่ล/ง

รถึยนัต่�

ร+ป Classification ข้องรถึยนัต่�

Page 8: Chapter  2  Abstractions

จุากต่�วอย'าง เราใช้� Concept เพื่%ยง 4 ข้�อเที่'านั�)นัเพื่��อสร�าง Class รถึยนัต่� จุาก Objects (1)

(2) และ (3) นั��นัค์�อ 1. ม%เค์ร��องยนัต่� 2. ม%ล�อจุ"านัวนัห้นั��ง 3 . ว/�งไปบื้นัถึนันัได� และ 4. ใช้�แก7สห้ร�อนั")าม�นัเป2นัเช้�)อเพื่ล/ง โดยเราไม'สนัใจุว'า จุะต่�องม%จุ"านัวนัล�อเที่'าก�บื้ 4 ล�อ ห้ร�อจุะต่�องสามารถึบื้รรที่�กข้องได�เราถึ�อว'า Classification เป2นั Abstraction ที่%�ส"าค์�ญที่%�ส�ด เพื่ราะ Class เก/ดข้�)นัด�วย Classification Abstraction ถึ�าห้ากว'า Class พื่�)นัฐานัที่%�เก/ดข้�)นัในัข้�)นัต่อนันั%)เก/ดข้�อผู้/ดพื่ลาด

การสร�าง Class ให้ม'ๆ ด�วยกระบื้วนัการ Aggregation และ Generalization และการสร�างค์วามเป2นัส�มพื่�นัธ์�ระห้ว'าง Class ต่'างๆ ด�วย

Association ย'อมจุะม%ค์วามผู้/ดพื่ลาดด�วยเช้'นัก�นั

Page 9: Chapter  2  Abstractions

23.Aggregation AbstractionAggregation Abstraction ค์�อ

กระบื้วนัการที่%�นั"าเอา Class พื่�)นัฐานั มารวมก�นัห้ร�อประกอบื้ก�นั (Aggregate) เพื่��อให้�เก/ดเป2นั Class ที่%�ให้ญ'ข้�)นั โดย Class พื่�)นัฐานัด�งกล'าวค์�อ Class ที่%�

สร�างข้�)นัในัข้�)นัต่อนั Classification นั��นัเองการที่"า Aggregation ค์�อ การต่อบื้ค์"าถึามว'า ในั Class กล�'มห้นั��งนั�)นั เราสามารถึที่%�จุะนั"าม�นัมารวม

ก�นั (Compose) เพื่��อที่"าให้�เก/ด Class ให้ม' ที่%�ม% Concept ให้ม' ได�ห้ร�อไม'อย'างไร ห้ร�อในัที่างกล�บื้ก�นั

ก1ค์�อ การต่อบื้ค์"าถึามว'า ม% Class ใดบื้�างที่%�สามารถึแบื้'งย'อย (Decompose) ออกเป2นัส'วนัประกอบื้

ต่'างๆ ซึ่��งม% Concept ต่'างไปจุากเด/มได�

Page 10: Chapter  2  Abstractions

ต่�วอย'าง รถึยนัต่�แต่'ละค์�นัประกอบื้ไปด�วย ต่�วถึ�ง ล�อ เค์ร��องยนัต่� ซึ่��งในัส'วนัข้องต่�วถึ�ง จุะประกอบื้ไปด�วย ประต่+ กระจุกห้นั�ารถึ และโค์รงรถึ ซึ่��งจุาก Domain นั%)

สามารถึแสดงค์วามส�มพื่�นัธ์�ในัเช้/ง Aggregation ได�ด�งร+ป

Aggregation

รถยนต์�

ต์�วถ�งรถ

ล้�อ เคร��องยนต์�

Aggregation

ประต์� กระจกหน�ารถ

โครงรถ

ร+ป Aggregation ข้องรถึยนัต่�

Page 11: Chapter  2  Abstractions

จุากต่�วอย'าง จุะเห้1นัว'าม%การใช้� Aggregation เพื่��อการรวมเอา Class ประต่+รถึ

กระจุกห้นั�ารถึ และโค์รงรถึ ซึ่��งแต่'ละ Class ม% Concept ต่'างก�นัโดยส/)นัเช้/ง เพื่��อให้�เป2นั Class

ให้ม'ค์�อ Class ต่�วถึ�งรถึ และม%การใช้� Aggregation อ%กค์ร�)งเพื่��อรวมเอา Class ต่�วถึ�ง

รถึ ล�อ และ เค์ร��องยนัต่� เข้�าไว�ด�วยก�นั เพื่��อเป2นั Class รถึยนัต่�

Page 12: Chapter  2  Abstractions

2.4 Generalization

AbstractionGeneralization Abstraction ค์�อกระบื้วนัการในัการนั"า Class ที่%�ม%ล�กษณะเห้ม�อนัห้ร�อค์ล�ายค์ล�งก�นั ห้ร�อม%ค์�ณสมบื้�ต่/อย'างใดอย'างห้นั��งร'วม

ก�นั (General) มาจุ�ดห้มวดห้ม+'ไว�เป2นั Class เด%ยวก�นั กระบื้วนัการย�อนักล�บื้ข้อง

Generalization Abstraction เร%ยกว'า Specialization ซึ่��ง Specialization ค์�อการต่อบื้ค์"าถึามว'าในั Class ห้นั��งๆ นั�)นัสามารถึจุ"าแนัก

เป2นั Class อะไรได�บื้�าง

Page 13: Chapter  2  Abstractions

ต่�วอย'าง รถึยนัต่�สามารถึแบื้'งออกเป2นั รถึบื้รรที่�ก รถึเก:ง และรถึสปอร�ต่ซึ่��งสามารถึ ว/�งได�เร1วกว'ารถึเก:งปกต่/ สามารถึเข้%ยนัแสดงค์วามส�มพื่�นัธ์�ในัเช้/ง Generalization และ Specialization ข้อง

ต่�วอย'างนั%)ได�ด�งร+ปรถยนต์�ค�ณสมบั�ต์ : ม!ล้�อ ม!เคร��องยนต์�

รถบัรรทุ�กค�ณสมบั�ต์ : ค�ณสมบั�ต์ ของรถยนต์� + สามารถบัรรทุ�กของได�

รถเก%งค�ณสมบั�ต์ : ค�ณสมบั�ต์ ของรถยนต์� + ใช้�โดยสาร ม! 4 ประต์�

รถสปอร�ต์ค�ณสมบั�ต์ : ค�ณสมบั�ต์ ของรถเก%ง +สามารถว �งได�เร(วกว)ารถเก%งปกต์

Genera

liz

ati

on

General

ization

Generalization

Speciali

zation

Specialization

Speci

ali

zati

on

ร+ป Generalization ข้องรถึยนัต่�

Page 14: Chapter  2  Abstractions

จุากต่�วอย'าง จุะเห้1นัว'าเราใช้� Generalization เพื่��อการจุ�ดห้มวดห้ม+' Class รถึ

บื้รรที่�กและ Class รถึเก:ง ไว�เป2นั Class รถึยนัต่� เพื่ราะรถึเก:งและรถึบื้รรที่�กนั�)นัต่'างก1ม%ค์�ณสมบื้�ต่/ข้อง

รถึยนัต่� ค์�อ ม%ล�อ และม%เค์ร��องยนัต่�ด�วยก�นัที่�)งค์+' ด�งนั�)นั Class รถึเก:งและรถึบื้รรที่�ก สามารถึอย+'ในัห้มวดห้ม+'เด%ยวก�นัได� ค์�อ Class รถึยนัต่�เอง ในัที่างกล�บื้ก�นัเราสามารถึจุ"าแนัก รถึยนัต่� ออกเป2นัรถึเก:งและรถึบื้รรที่�ก ด�วยกระบื้วนัการ Specialization เพื่ราะที่�)งรถึเก:ง

และรถึบื้รรที่�กม%ค์�ณสมบื้�ต่/ที่�กอย'างที่%�รถึยนัต่�ที่��วไปม% แต่'รถึเก:งม%ข้�อพื่/เศึษกว'ารถึยนัต่�ที่��วไป ต่รงที่%� ม�นัใช้�ส"าห้ร�บื้

การโดยสาร และม% 4 ล�อ ในัข้ณะที่%�รถึบื้รรที่�กม%ค์�ณสมบื้�ต่/พื่/เศึษกว'ารถึยนัต่�ที่��วไปและต่'างจุากรถึเก:ง

ต่รงที่%�รถึบื้รรที่�กสามารถึบื้รรที่�กข้องได�

ในัข้ณะเด%ยวก�นัย�งใช้� Specialization เพื่��อการจุ"าแนักรถึเก:งออกเป2นัรถึเก:งช้นั/ดพื่/เศึษ เร%ยกว'า “

รถึสปอร�ต่”

Page 15: Chapter  2  Abstractions

25

Association AbstractionAssociation Abstraction ค์�อ

กระบื้วนัการในัการสร�างค์วามส�มพื่�นัธ์�ระห้ว'าง Class ต่'างๆ ในั Problem Domain ที่%�เราสนัใจุ ค์วามส�มพื่�นัธ์�ด�งกล'าว ค์�อค์วามส�มพื่�นัธ์�ที่%�ไม'สามารถึอธ์/บื้ายได�ด�วย Aggregation (ค์วามส�มพื่�นัธ์�ในัเช้/งการรวมก�นั การประกอบื้ก�นั ห้ร�อการแบื้'งแยกส'วนัประกอบื้ ) ห้ร�อ Generalization (ค์วาม

ส�มพื่�นัธ์�ในัเช้/ง การจุ�ดประเภที่จุ�ดห้มวดห้ม+' ห้ร�อการจุ"าแนัก ) แต่' Association เป2นัการอธ์/บื้ายค์วามส�มพื่�นัธ์�ข้อง Class ในัเช้/งก/จุกรรม เช้'นั การใช้�งานั การข้�บื้เค์ล��อนั การบื้ร/โภค์ เป2นัต่�นั ห้ร�อค์วามส�มพื่�นัธ์�ในัเช้/งสถึ/ต่ย� เช้'นั การเป2นัเจุ�าข้อง การให้�ก"าเนั/ด การ

ผู้ล/ต่ เป2นัต่�นั

Page 16: Chapter  2  Abstractions

ต่�วอย'าง ต่ามปกต่/รถึยนัต่�ต่�องใช้�นั")าม�นัเป2นัเช้�)อเพื่ล/งเพื่��อให้�สามารถึว/�งไปได� และรถึยนัต่�เองก1ว/�งอย+'บื้นัถึนันั นัอกจุากนั%) ค์นัข้�บื้รถึก1ค์�อ ผู้+�ข้�บื้ข้%�รถึยนัต่� เราแสดงค์วามส�มพื่�นัธ์�ข้อง Class ต่'างๆ ในั Domain ได�ด�ง

ร+ปค์นั รถึย

นัต่�ถึนันั

รถึยนัต่�

ข้�บื้ ว/�งอย+'บื้นั

ใช้�เป2นัเช้�)อเพื่ล/ง

ร+ป Association Abstraction ข้อง Domain

Page 17: Chapter  2  Abstractions

จุากต่�วอย'างข้�างต่�นัจุะพื่บื้ว'า Class ต่'างๆ ในั Problem Domain ซึ่��งได�แก' ค์นั รถึยนัต่� ถึนันั และนั")าม�นั ม%ค์วามส�มพื่�นัธ์�ต่'อก�นั ซึ่��งค์วามส�มพื่�นัธ์�ที่%�

กล'าวถึ�ง ประกอบื้ด�วย ค์นัก�บื้รถึยนัต่� (ค์นัข้�บื้รถึยนัต่� ) รถึยนัต่�ก�บื้ถึนันั (รถึยนัต่�ว/�งไปบื้นัถึนันั )และรถึยนัต่�ก�บื้นั")าม�นั (รถึยนัต่�ใช้�นั")าม�นั ) ซึ่��งค์วาม

ส�มพื่�นัธ์�เห้ล'านั%)ไม'สามารถึอธ์/บื้ายได�ด�วย Aggregation และ Generalization Abstraction แต่'สามารถึอธ์/บื้ายได�ด�วย

Association Abstraction ด�งต่�วอย'างที่%�ผู้'านัมา

จุากต่�วอย'างข้�างต่�นั จุะใช้�เส�นัที่%�ม%ห้�วล+กศึรเพื่��อแสดงค์วามส�มพื่�นัธ์�ระห้ว'าง Class โดยบื้นัเส�นัจุะ

ม%ช้��อข้องค์วามส�มพื่�นัธ์�ก"าก�บื้อย+' ล+กศึรบื้นัเส�นัใช้�เพื่��ออ"านัวยค์วามสะดวกในัการอ'านัและที่"าค์วามเข้�าใจุก�บื้

ค์วามส�มพื่�นัธ์� เช้'นั จุากร+ปจุะอ'านัว'า ค์นัข้�บื้รถึยนัต่� “ ”ค์�ออ'านัต่ามห้�วล+กศึร

Page 18: Chapter  2  Abstractions

ค์"าถึามที่�ายบื้ที่ 1. Generalization

Abstraction และ Aggregation Abstraction

ม%ค์วามเห้ม�อนัห้ร�อแต่กต่'างก�นัอย'างไร

2. Aggregation Abstraction และ Association Abstraction ม%ค์วามห้มายห้ร�อแต่กต่'างก�นัอย'างไร และสามารถึใช้�แที่นัก�นัได�ห้ร�อไม'

อย'างไร3. จุากประโยค์ต่'อไปนั%) สามารถึอธ์/บื้ายได�ด�วย Abstraction ใดบื้�าง- ค์นัม%อว�ยวะต่'างๆ ค์�อ แข้นั ข้า ล"าต่�ว และศึ%รษะ

- โรงเร%ยนัประกอบื้ด�วยอาค์ารห้ลายๆ อาค์าร แต่'ละ อาค์ารประกอบื้ด�วยห้�องห้ลายๆ

ห้�อง- นัายด"า และนัายแดง เป2นัผู้+�ช้าย นัางสาวข้าว และ

สมศึร% เป2นัผู้+�ห้ญ/ง