หัวข้อ: การใช้งาน Functions `set` และ `get` พร้อมความสำคัญของ OOP ใน TypeScript
บทความ:
โลกแห่งการเขียนโปรแกรมนั้นกว้างขวางและเต็มไปด้วยความท้าทาย ภาษา TypeScript เป็นหนึ่งในภาษาที่ได้รับความนิยมสำหรับการพัฒนาเว็บแอปพลิเคชัน ด้วยคุณสมบัติที่ช่วยให้การเขียน JavaScript มีความเป็นระเบียบและมีโครงสร้างมากขึ้น ในบทความนี้เราจะศึกษาเกี่ยวกับ functions `set` และ `get` ที่มีความจำเป็นต่อการจัดการข้อมูลใน OOP (Object-Oriented Programming), หนึ่งในหลักการที่สำคัญของการเขียนโปรแกรมแบบมีโครงสร้าง นอกจากนี้เรายังจะพูดถึง usecase หรือตัวอย่างการใช้งานในโลกจริง
ใน OOP, `set` และ `get` เป็นฟังก์ชันพิเศษที่เรียกว่า accessors และ mutators ซึ่งปกติจะใช้เพื่ออ่านและเขียนค่าของคุณสมบัติ (properties) ของออบเจ็ค ฟังก์ชัน `get` คือตัวอ่านค่าหรือตัวเข้าถึง ใช้สำหรับดึงค่าของออบเจค ในขณะที่ `set` คือตัวกำหนดค่าหรือตัวแก้ไข ใช้สำหรับตั้งค่าใหม่ให้กับออบเจค
OOP มองโลกในมุมมองของออบเจคและการใช้งาน `set` และ `get` ช่วยให้เราสามารถควบคุมการเข้าถึงหรือการแก้ไขข้อมูลของออบเจคได้ มันช่วยให้โค้ดมีความปลอดภัยและง่ายต่อการบำรุงรักษามากขึ้น นอกจากนี้ยังช่วยในการนำแนวคิดของ encapsulation หรือการซ่อนรายละเอียดการดำเนินงานภายในไว้
มาดูตัวอย่างการใช้ `set` และ `get` ใน TypeScript กัน:
ตัวอย่างที่ 1: การกำหนดแอตทริบิวต์พื้นฐาน
class Employee {
private _fullName: string = "";
get fullName(): string {
return this._fullName;
}
set fullName(newName: string) {
if (newName && newName.length > 3) {
this._fullName = newName;
} else {
console.error("Error: provided name is too short.");
}
}
}
let employee = new Employee();
employee.fullName = "John Doe";
if (employee.fullName) {
console.log(employee.fullName); // John Doe
}
ในตัวอย่างข้างต้น, `Employee` มี property `_fullName` ที่สามารถเข้าถึงได้ผ่าน `set` และ `get`. `set fullName` ตรวจสอบความถูกต้องของชื่อที่ได้รับก่อนที่จะกำหนดให้กับ `_fullName`.
ตัวอย่างที่ 2: การคำนวณค่าภายในออบเจค
class Circle {
private _radius: number = 0;
constructor(radius: number) {
this._radius = radius;
}
get area(): number {
return Math.PI * this._radius * this._radius;
}
}
let circle = new Circle(5);
console.log(circle.area); // 78.53981633974483
`Circle` โมเดลใช้ `get area` เพื่อคำนวณพื้นที่ของวงกลมโดยอัตโนมัติ เวลาที่เราเรียก `circle.area`, เราได้พื้นที่โดยที่ไม่จำเป็นต้องเรียกฟังก์ชันคำนวณทุกครั้ง.
ตัวอย่างที่ 3: การเปลี่ยนแปลงค่าและส่งผลกับการตัดสินใจในคลาส
class Permission {
private _accessLevel: number = 0;
get accessLevel(): number {
return this._accessLevel;
}
set accessLevel(level: number) {
if (level > 0 && level <= 5) {
this._accessLevel = level;
} else {
console.error("Error: Invalid access level.");
}
}
canAccessResource(): boolean {
return this._accessLevel > 3;
}
}
let userPermission = new Permission();
userPermission.accessLevel = 4;
console.log(userPermission.canAccessResource()); // true
ในตัวอย่างข้างต้น, `Permission` ใช้ `set accessLevel` เพื่อจำกัดระดับการเข้าถึงและ `get accessLevel` ให้โมเดลสามารถตัดสินใจได้ว่าผู้ใช้สามารถเข้าถึงทรัพยากรได้หรือไม่.
`set` และ `get` มีประโยชน์หลายอย่างในการพัฒนาซอฟต์แวร์ เช่น ในการพัฒนาแอปพลิเคชัน eCommerce คุณอาจมีคลาสสำหรับ Product ที่มีราคา คุณสามารถใช้ `set` เพื่อตรวจสอบว่าราคาสินค้าไม่เป็นลบ และใช้ `get` เพื่อแปลงรูปแบบราคาเป็นสกุลเงินต่าง ๆ
ในการจัดการข้อมูลส่วนบุคคลของลูกค้า, การใช้ `get` และ `set` ช่วยให้คุณสามารถดำเนินการตรวจสอบและรองรับการเข้ารหัสข้อมูลสำหรับความปลอดภัยได้
หวังว่าคุณจะพบว่าตัวอย่างเหล่านี้และความคิดที่พูดถึงมีประโยชน์สำหรับโปรเจกต์ที่คุณกำลังทำงานอยู่ และหากคุณมีความสนใจในการเรียนรู้เพิ่มเติมเกี่ยวกับ TypeScript หรือ OOP, Expert-Programming-Tutor (EPT) เป็นสถาบันที่เพียบพร้อมด้วยทรัพยากรและผู้เชี่ยวชาญที่คอยช่วยเหลือคุณอย่างใกล้ชิด เรียนรู้กับเรา และพัฒนาทักษะการเขียนโค้ดของคุณไปอีกขั้น!
หมายเหตุ: ข้อมูลในบทความนี้อาจจะผิด โปรดตรวจสอบความถูกต้องของบทความอีกครั้งหนึ่ง บทความนี้ไม่สามารถนำไปใช้อ้างอิงใด ๆ ได้ ทาง EPT ไม่ขอยืนยันความถูกต้อง และไม่ขอรับผิดชอบต่อความเสียหายใดที่เกิดจากบทความชุดนี้ทั้งทางทรัพย์สิน ร่างกาย หรือจิตใจของผู้อ่านและผู้เกี่ยวข้อง
หากมีข้อผิดพลาด/ต้องการพูดคุยเพิ่มเติมเกี่ยวกับบทความนี้ กรุณาแจ้งที่ http://m.me/Expert.Programming.Tutor
085-350-7540 (DTAC)
084-88-00-255 (AIS)
026-111-618
หรือทาง EMAIL: NTPRINTF@GMAIL.COM