ดาวน์โหลดงานนำเสนอ
งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ
1
Object Roles and the Importance of Polymorphism
อาจารย์สมเกียรติ ช่อเหมือน สาขาวิชาวิศวกรรมซอฟต์แวร์ คณะวิทยาศาสตร์และเทคโนโลยี
2
บทบาทของobject และความสำคัญของ Polymorphism
ช่วยให้เราสามารถจัดการกับ Class ที่เกี่ยวข้องกันได้ ใช้ polymorphism ในโปรแกรม Java ใช้ overridden methods เพื่อให้เกิดความแตกต่างกัน กำหนดอินเตอร์เฟซที่จะขยาย polymorphism เกินลำดับชั้นในการสืบทอด ขอบเขตในการขยายให้มีรูปแบบที่หลากหลาย
3
Object Roles and the Importance of Polymorphism
Class Types Substitutability Polymorphism Extensibility Interfaces Extensibility Again Distinguishing Subclass Summary
4
Class Types การจัดหมวดหมู่ตามลำดับชั้นของสิ่งที่สนใจ
การระบุชนิดของสิ่งที่แตกต่างกันในแต่ละระดับ ระดับที่สูงกว่า=พื้นฐาน ระดับที่ต่ำกว่า=พิเศษ ในแต่ละลำดับชั้นมีความสัมพันธ์กันคือ “เป็น” เช่น คน เป็นสัตว์เลี้ยงลูกด้วยนม ในการจัดกลุ่มของคลาส เพื่อสร้าง “type” ใหม่ ของแต่ละระดับของ Class เป็นการรวมกันระหว่าง ตัวแปร และ พารามิเตอร์ เพื่อระบุสิ่งที่สนใจ subclass เป็นส่วนย่อยของ superclass และสามารถใช้ทดแทนด้วย 'supertype' ต่อเนื่องไปจนถึงการใช้แทนวัตถุในลำดับล่างได้ Publication p = new Book(…); Publication p = new DiscMag(…); Magazine m = new DiscMag(…); DiscMag dm = new Magazine(…); Publication p = new Publication(…);
5
Substitutability การออกแบบClass ช่วยให้เราสามารถจัดวางวัตถุของแต่ละ Subclass ทำให้แน่ใจว่าสามารถสร้างวัตถุที่ทดแทน Superclass overriding methods เป็นการปรับแต่งให้ตอบสนองความต้องการ subclass โดยแทนที่ด้วยฟังก์ชันการทำงานที่แตกต่างกับ superclass ประกันว่าสืบทอดคุณสมบัติของวัตถุไปยัง subclass ได้ครบถ้วน subclass ไม่สามารถลบการดำเนินการรับมรดกมาจาก superclass ได้ แต่ subclass สามารถขยายขีดความสามารถของ superclass ได้ “Extends” ช่วยในการสืบทอด
6
Polymorphism ภาวะหลายรูปแบบ
เราสามารถจัดการวัตถุที่สร้างจาก Subclass ได้เหมือนวัตถุที่สร้างจาก Superclass สามารถใช้งานการทำงานของ superclass ได้จาก subclass แต่ละตัวได้โดยไม่ต้องกังวลรายละเอียดของการทำงานของ superclass เป็นความคิดในการใช้ชื่อที่จินตนาการขึ้นร่วมกัน เพื่อให้แต่ละส่วนนำไปใช้กำหนดในแบบของตนเองได้ หากobject “p”เป็น สิ่งพิมพ์มันอาจจะเป็น หนังสือ หรือ นิตยสาร สิ่งพิมพ์มีเมธอด sellCopy() สามารถเรียกได้จากหนังสือและนิตยสาร โดยไม่ต้องกังวลว่า p คืออะไร เป็นวิธีที่ง่ายในการจัดการกับวัตถุที่อยู่ในลำดับชั้นที่ได้รับการสืบทอด
7
Extensibility การใช้จ่ายจำนวนมหาศาลในแต่ละปี เพื่อสร้างโปรแกรมคอมพิวเตอร์ใหม่ แต่ค่าใช้จ่ายส่วนมากใช้ในการปรับเปลี่ยนโปรแกรมเพื่อตอบสนองความต้องการขององค์กรที่เปลี่ยนแปลง วิศวกรซอฟต์แวร์มีหน้าที่อำนวยความสะดวกและช่วยให้โปรแกรมง่ายต่อการรักษาและปรับปรุง หากต้องการปรับปรุงและพัฒนาเมธอดในการขายของ subclass sellBook (Book pBook) sellMagazine (Magazine pMagazine) sellDiscMag (DiscMag pDiscMag) ต้องใช้ Polymorphism เพื่อปรับปรุงที่ Superclass sellItem (Publication pPub) ช่วยให้ขยายการทำงานของ Subclass หรือใช้เมธอดในการขายของ Superclass เพราะทุก subclass เป็นชนิดที่สืบทอดมาจาก superclass ดังนั้นวัตถุที่สร้างจาก Subclass จึงสามารถส่งผ่านเป็นพารามิเตอร์ของ Superclass ได้
8
Interfaces การสืบทอดมี 2 รูปแบบ
subclass สืบทอดอินเตอร์เฟซของ superclass (public members) นี้จะทำให้มีหลายรูปแบบที่เป็นไปได้ subclass สืบทอดการดำเนินงานของ superclass (เช่นคุณสมบัติและเมธอด) แบบนี้ช่วยให้คัดลอกรายละเอียดจาก superclass Java ใช้คำว่า “Extends” เพื่อให้ใช้งานได้อัตโนมัติ (inheritance) ใช้คำว่า “Implementation” เพื่อกำหนดการทำงานของเมธอด (Interfaces) subclass is a subtype. ‘plug and socket’
9
Interfaces
10
Extensibility Again polymorphism ช่วยให้วัตถุสามารถจัดการได้ โดยไม่คำนึงถึงระดับชั้นของคลาส ช่วยให้สามารถขยายระบบ โดยมีการห่อหุ้มตามที่ออกแบบ เราสามารถสร้างคลาสใหม่สำหรับผลิตภัณฑ์ต่างๆ ได้โดยใช้ Interface Saleable() without a single change to its code! การกำหนดรายละเอียดของเมธอดได้ โดยไม่ส่งผลกระทบต่อ Class อื่น การใช้ Interface เพื่อเชื่อมต่อกับส่วนอื่นๆ ได้ตามมาตรฐาน เช่นเดียวกับเครื่องใช้ไฟฟ้า
11
Distinguishing Subclasses
object instanceof class ผลจะเป็นจริง ถ้าวัตถุเป็นของคลาสที่ระบุ (หรือ subclass) นอกจากนี้ยังสามารถใช้กับอินเตอร์เฟซ การตรวจสอบว่าอินเตอร์เฟซนั้นเป็นของ Subclass ใด public void saleType (SaleableItem pSelb) { if (pSelb instanceof Publication) { System.out.println("This is a Publication"); } else if (pSelb instanceof Ticket) { System.out.println("This is a Ticket"); } else { System.out.println("This is a an unknown sale type"); } }
12
Summary polymorphism ช่วยให้เราสามารถอ้างถึงวัตถุตาม superclass
polymorphism ทำให้มันง่ายต่อการขยายโปรแกรม ด้วยการเพิ่มเติม Class โดยไม่ต้องเปลี่ยน Class อื่น ๆ สามารถจัดการ object โดยเรียกเมธอดที่กำหนดไว้สำหรับ superclass โดยไม่ต้องกังวลกับ subclass Java ทำให้แน่ใจว่าเป็นวิธีการที่เหมาะสมสำหรับ object ที่เกิดขึ้นจาก class ในขณะทำงาน การใช้งานอินเตอร์เฟซร่วมกันของclass ต่างๆ และกำหนดการดำเนินงานทั้งหมดเองได้
งานนำเสนอที่คล้ายกัน
© 2024 SlidePlayer.in.th Inc.
All rights reserved.