### Polymorphism ในแนวคิด OOP: มิติใหม่ของการเขียนโค้ด
หนึ่งในคอนเซ็ปต์หลักที่สำคัญในโลกของการเขียนโปรแกรมตามแนวคิดวัตถุ (Object-Oriented Programming - OOP) คือ Polymorphism ซึ่งเป็นคำที่มาจากภาษากรีก โดยมีคำว่า "Poly" หมายถึง "หลาย" และ "Morphism" หมายถึง "รูปแบบ" รวมกันคือ "มีหลายรูปแบบ" ในบริบทของการเขียนโปรแกรม, Polymorphism อธิบายถึงคุณสมบัติของวัตถุที่สามารถถูกดำเนินการในหลากหลายรูปแบบผ่านการใช้ interface หรือ class ที่เป็นพื้นฐานร่วมกัน ซึ่งจะทำให้โค้ดที่เขียนนั้นมีความยืดหยุ่นและสามารถนำไปใช้ซ้ำได้อย่างง่ายดาย
#### การใช้งาน Polymorphism ใน JavaScript
ภาษา JavaScript ซึ่งเป็นภาษาที่รองรับ OOP ได้อย่างไม่สมบูรณ์แบบ แต่ยังคงให้คุณสมบัติของ Polymorphism ได้อย่างมีประสิทธิภาพผ่าน prototypal inheritance แทนที่จะเป็น class-based inheritance ตามในภาษาอื่น ๆ เช่น Java หรือ C#. ต่อไปนี้คือตัวอย่างโค้ดสำหรับการใช้งาน Polymorphism ใน JavaScript:
function Vehicle(name) {
this.name = name;
}
Vehicle.prototype.drive = function() {
console.log(`${this.name} is driving`);
};
function Car(name) {
Vehicle.call(this, name);
}
Car.prototype = Object.create(Vehicle.prototype);
Car.prototype.constructor = Car;
function Boat(name) {
Vehicle.call(this, name);
}
Boat.prototype = Object.create(Vehicle.prototype);
Boat.prototype.constructor = Boat;
// เพิ่มเมธอด k hondehnxhn ให้กับ Car และ Boat
Car.prototype.drive = function() {
console.log(`${this.name} is driving on the road`);
};
Boat.prototype.drive = function() {
console.log(`${this.name} is sailing on the water`);
};
// สร้างอินสแตนซ์จาก Car และ Boat และทำ polymorphism
let myCar = new Car('Honda Civic');
let myBoat = new Boat('Speedy');
myCar.drive(); // "Honda Civic is driving on the road"
myBoat.drive(); // "Speedy is sailing on the water"
#### Usecase ในโลกจริงของ Polymorphism
1. ระบบการจัดการเอกสาร: พิจารณาว่าคุณมีลิสต์ของเอกสาร (Documents) ซึ่งแต่ละอันสามารถเป็น PDF, Word หรือ Google Docs ถ้ามี method `print()` ที่ถูกโอเวอร์ไรด์ในแต่ละ subclass เราสามารถพิมพ์เอกสารใด ๆ โดยไม่ต้องสนใจว่าเป็นประเภทใดผ่าน interface เดียวกัน 2. ระบบการแจ้งเตือน (Notification System): สมมติว่าคุณพัฒนาระบบการแจ้งเตือนที่ส่งออกไปยัง Email, SMS หรือ Push Notification เราสามารถมี class `Notification` ซึ่งมี method `send()` และ subclass สำหรับแต่ละช่องทางการส่งข้อความ ถึงแม้วิธีการส่งข้อความจะแตกต่างกันแต่ interface ร่วม `send()` ทำให้ง่ายต่อการเรียกใช้เมื่อคุณเข้าใจถึงความสำคัญของ Polymorphism ในการพัฒนาโปรแกรม คุณจะสามารถเขียนโค้ดที่มีความยืดหยุ่นและสามารถนำกลับมาใช้ซ้ำได้ สนใจทำความเข้าใจลึกซึ้งและสัมผัสประสบการณ์การเรียนการสอนที่ดีที่สุดไหม? เรียนรู้ที่ EPT เพื่อพัฒนาทักษะการเขียนโปรแกรมของคุณ และเตรียมพร้อมเพื่อฝ่าฟันความท้าทายในโลกของการเขียนโปรแกรมให้กับตัวคุณเอง!
หมายเหตุ: ข้อมูลในบทความนี้อาจจะผิด โปรดตรวจสอบความถูกต้องของบทความอีกครั้งหนึ่ง บทความนี้ไม่สามารถนำไปใช้อ้างอิงใด ๆ ได้ ทาง EPT ไม่ขอยืนยันความถูกต้อง และไม่ขอรับผิดชอบต่อความเสียหายใดที่เกิดจากบทความชุดนี้ทั้งทางทรัพย์สิน ร่างกาย หรือจิตใจของผู้อ่านและผู้เกี่ยวข้อง
Tag ที่น่าสนใจ: polymorphism oop object-oriented_programming javascript prototypal_inheritance class-based_inheritance interface subclass method_override programming_concept code_example document_management_system notification_system
หากมีข้อผิดพลาด/ต้องการพูดคุยเพิ่มเติมเกี่ยวกับบทความนี้ กรุณาแจ้งที่ http://m.me/Expert.Programming.Tutor
085-350-7540 (DTAC)
084-88-00-255 (AIS)
026-111-618
หรือทาง EMAIL: NTPRINTF@GMAIL.COM
Copyright (c) 2013 expert-programming-tutor.com. All rights reserved. | 085-350-7540 | 084-88-00-255 | ntprintf@gmail.com