PHP เบื้องต้น > Object Oriented Programming
แนวคิด Object Oriented Programming
Object oriented programming (OOP) มีจุดสำคัญคือ ความสามารถสร้างประเภทข้อมูลใหม่ที่มีข้อมูลและการทำงานร่วมกัน การพัฒนาแบบนี้ใช้การจัดความสัมพันธ์และคุณสมบัติของอ๊อบเจคในระบบในปฏิบัติงาน
Class และอ๊อบเจค
ในบริบทซอฟต์แวร์ OOP อ๊อบเจคสามารถเป็นสิ่งของหรือแนวคิดได้แก่ วัตถุทางกายภาค เช่น โต๊ะ ลูกค้า หรือวัตถุทางแนวคิดที่มีอยู่ในซอฟต์แวร์ เช่น พื้นที่ป้อนข้อความ ไฟล์ โดยทั่วไปความสนใจส่วนมากในวัตถุทางแนวคิด รวมถึงวัตถุในโลกจริงที่ต้องการนำเสนอในซอฟต์แวร์
ซอฟต์แวร์ OOP เป็นชุดของอ๊อบเจคเก็บคุณลักษณะและปฏิบัติการ โดย คุณลักษณะคือ คุณสมบัติหรือตัวแปรที่สัมพันธ์กับอ๊อบเจค ปฏิบัติการคือ เมธอดการกระทำหรือฟังก์ชันที่อ๊อบเจคสามารถทำการปรับปรุงตัวเองหรือผลกระทบภายนอก
ซอฟต์แวร์แบบนี้ สนับสนุนและช่วยการห่อหุ้ม (encapsulation) ที่เรียกว่าการซ่อนข้อมูล ส่วนสำคัญคือ การเข้าถึงข้อมูลภายในอ๊อบเจคมีให้เฉพาะการผ่านปฏิบัติการของอ๊อบเจคที่เรียกว่าอินเตอร์เฟซของอ ๊ อบเจค
class แสดงแทนชุดของอ๊อบเจคที่อาจจะแปรผันจากแต่ละอ๊อบเจค แต่ต้องมีผลร่วมกัน ถึงแม้ว่าค่าของคุณลักษณะเหล่านั้นจะแปรผันตามอ๊อบเจค ตัวอย่าง จักรยาน สามารถคิดเป็น class ของอ๊อบเจคที่อธิบายจักรยานหลายประเภทด้วยส่วนการทำงานรวมหรือคุณลักษณะ เช่น 2 ล้อ สี ขนาด และปฏิบัติการ เช่น การเคลื่อนย้าย
Polymorphism
ภาษา Object oriented programming ต้องสนับสนุน polymorphism ซึ่งหมายความว่า แต่ละ class สามารถมีพฤติกรรมต่างสำหรับปฏิบัติการเดียวกัน เช่น มี class รถยนต์ และ class จักรยาน ทั้งคู่มีปฏิบัติการเคลื่อนย้ายต่างกัน วัตถุในโลกจริงมีปัญหาน้อย อย่างไรก็ตาม ภาษาโปรแกรมไม่คิดเหมือนโลกจริง ดังนั้นภาษาต้องสนับสนุน polymorphism เพื่อทราบถึงปฏิบัติการที่ใช้โดยอ๊อบเจคเฉพาะ
polymorphism มีพฤติกรรมมากกว่าอ๊อบเจคใน PHP เฉพาะฟังก์ชันสมาชิกของ class สามารถเป็น polymorphism เปรียบเทียบกับโลกจริงคือ กริยาในภาษาธรรมชาติ ซึ่งเทียบเท่ากับฟังก์ชันสมาชิก พิจารณาการใช้จักรยานในชีวิตจริง คือ การทำความสะอาด การแยกชิ้น การซ่อม ทาสี เป็นต้น
การอินเฮอริต ยอมให้สร้างความสัมพันธ์ตามลำดับชั้น ระหว่าง class ด้วยการใช้ subclass โดย subclass ทำอินเฮอริต คุณลักษณะและปฏิบัติการจาก superclass
การอินเฮอริต ทำให้สามารถสร้างและเพิ่มไปยัง class ที่มีอยู่ จาก class ฐานอย่างง่าย สามารถทำได้มาจากให้ซับซ้อนมากขึ้นและเจาะจง class ตามความต้องการ สิ่งนี้ทำให้ใช้คำสั่งใหม่ได้ และเป็นข้อได้เปรียบสำคัญของ object oriented programming
|