Encapsulation หรือ การห่อหุ้มข้อมูล เป็นคุณสมบัติของการเขียนโปรแกรมเชิงวัตถุ (OOP) ที่ช่วยให้สามารถควบคุมการเข้าถึงข้อมูลภายในคลาส (Class)
ประโยชน์ของ Encapsulation:
- ช่วยปกปิดข้อมูลภายในคลาส
- ช่วยให้โค้ดมีความปลอดภัย
- ช่วยให้โค้ดมี modularity
- ช่วยให้โค้ดมี maintainability
การใช้ Encapsulation:
- ใช้ตัวกำหนดการเข้าถึง (Access specifier) เช่น
public
,protected
,private
- กำหนดระดับการเข้าถึงสำหรับคุณสมบัติ (Property) และวิธีการ (Method)
ตัวอย่าง:
PHP
class Person {
private $name; // ข้อมูล private
public function __construct($name) {
$this->name = $name;
}
public function getName() { // Method public
return $this->name;
}
private function setName($name) { // Method private
$this->name = $name;
}
}
$person = new Person("John Doe"); // สร้างออบเจ็ค
echo $person->getName(); // แสดงชื่อ: John Doe
// ไม่สามารถเข้าถึง $person->name ได้โดยตรง
// $person->name = "Jane Doe"; // Error
// การเปลี่ยนแปลงชื่อต้องใช้ method public
$person->setName("Jane Doe");
echo $person->getName(); // แสดงชื่อ: Jane Doe
ตัวกำหนดการเข้าถึง:
public
: เข้าถึงได้จากทุกที่protected
: เข้าถึงได้จากคลาสและคลาสลูกprivate
: เข้าถึงได้จากคลาสเท่านั้น
ข้อควรระวัง:
- Encapsulation ทำให้โค้ดมีความซับซ้อน
- จำเป็นต้องเข้าใจกลไกการทำงานของ Encapsulation
แหล่งข้อมูล:
- W3Schools: https://irinagyurjinyan.wordpress.com/2022/04/12/%D1%83%D1%80%D0%BE%D0%BA-19/
- PHP.net: https://www.php.net/manual/en/language.oop5.php