ในโลกของการเขียนโปรแกรมที่มีการพัฒนาอย่างไม่หยุดยั้ง การใช้โครงสร้างการเขียนโปรแกรมที่เป็นระเบียบและมีคุณภาพนั้นเป็นสิ่งสำคัญมาก เพื่อที่จะสามารถสร้างซอฟต์แวร์ที่มีความทนทานต่อการเปลี่ยนแปลงและง่ายต่อการบำรุงรักษา หนึ่งในหลักการที่ได้รับความนิยมคือหลักการของ Object-Oriented Programming (OOP) ซึ่งในบทความนี้เราจะมาพูดถึง set และ get function ซึ่งเป็นส่วนหนึ่งของหลักการ OOP และการนำไปใช้ในภาษา Golang ครับ
ผู้ใช้ในแอปพลิเคชันก็เหมือนวัตถุที่มีคุณลักษณะและพฤติกรรมต่างๆ ใน Golang เราสามารถนิยามโพรไฟล์ผู้ใช้เป็น struct และใช้ set และ get function กำหนดคุณลักษณะ (properties) พื้นฐานได้ เช่น ชื่อ อายุ และอีเมล ดังนี้:
package main
import (
"fmt"
)
type UserProfile struct {
firstName string
lastName string
age int
email string
}
func (u *UserProfile) SetFirstName(name string) {
u.firstName = name
}
func (u UserProfile) GetFirstName() string {
return u.firstName
}
func (u *UserProfile) SetLastName(name string) {
u.lastName = name
}
func (u UserProfile) GetLastName() string {
return u.lastName
}
func (u *UserProfile) SetAge(age int) {
if age > 0 {
u.age = age
}
}
func (u UserProfile) GetAge() int {
return u.age
}
func (u *UserProfile) SetEmail(email string) {
u.email = email
}
func (u UserProfile) GetEmail() string {
return u.email
}
func main() {
user := UserProfile{}
user.SetFirstName("Somsak")
user.SetLastName("Sukkapak")
user.SetAge(30)
user.SetEmail("[email protected]")
fmt.Println("User's full name:", user.GetFirstName(), user.GetLastName())
fmt.Println("User's age:", user.GetAge())
fmt.Println("User's email:", user.GetEmail())
}
ในตัวอย่างนี้ `UserProfile` struct ได้มีการนิยาม set function และ get function เพื่อช่วยในการเข้าถึงข้อมูลที่เป็น private อยู่ภายใน struct เป็นการนำ OOP concept มาใช้ใน Golang ซึ่งไม่มี keyword อย่าง `private`, `public` หรือ `protected` เหมือนในภาษาอื่นๆ สำหรับ usecase นี้ บุคคลทั่วไปสามารถเปลี่ยนแปลงข้อมูลโปรไฟล์ผ่านการเข้าถึงผ่าน functions ที่ตกลงกันได้ ช่วยให้ควบคุมการเข้าถึงได้ดียิ่งขึ้น
สินค้าอาจมีการกำหนดราคา หรือรายละเอียดต่างๆ ซึ่งใน OOP ต้องการให้เข้าถึงตัวแปรเหล่านั้นผ่าน methods ที่ระบุไว้:
package main
import (
"fmt"
)
type Product struct {
name string
price float64
}
func (p *Product) SetName(n string) {
p.name = n
}
func (p Product) GetName() string {
return p.name
}
func (p *Product) SetPrice(pr float64) {
if pr > 0 {
p.price = pr
}
}
func (p Product) GetPrice() float64 {
return p.price
}
func main() {
product := Product{}
product.SetName("MacBook Pro")
product.SetPrice(1299.99)
fmt.Println("Product Name:", product.GetName())
fmt.Println("Product Price:", product.GetPrice())
}
สำหรับ usecase นี้, ผู้จัดการร้านค้าออนไลน์สามารถทำการเพิ่มหรือปรับปรุงรายละเอียดสินค้าผ่าน functions เฉพาะที่ได้จัดเตรียมไว้ ช่วยป้องกันข้อผิดพลาดจากการแก้ไขโดยตรงที่อาจเกิดจากการเข้าถึงตัวแปรโดยตรง
การใช้ `set` และ `get` function นั้นช่วยทำให้โค้ดของเรามีความเป็นระเบียบ และช่วยในการจัดการสิทธิ์การเข้าถึง ทำให้สามารถควบคุมการแก้ไขค่าต่างๆ ของ object ได้ง่ายขึ้น นี่เป็นแง่มุมที่สำคัญของ OOP principle ที่เรียนรู้ได้ที่ EPT (Expert-Programming-Tutor) ที่ส่งเสริมให้นักเรียนเข้าใจและนำไปใช้อย่างถูกต้องและคล่องแคล่วในการพัฒนาโปรแกรมของตัวเองครับ
การใช้ set และ get functions ในการเขียนโปรแกรมโดยยึดหลักการ OOP นั้นเป็นสิ่งที่ควรจะฝึกฝน และนี่คือเพียงส่วนหนึ่งของหลักการเขียนโปรแกรมที่คุณสามารถที่จะเรียนรู้ได้ที่ EPT ในฐานะที่เป็นมืออาชีพในการเขียนโค้ด การเรียนรู้เทคนิคเหล่านี้จะช่วยให้คุณเติบโตและเพิ่มคุณภาพการเขียนโค้ดของคุณไปอีกระดับ หากสนใจเข้าร่วมค่ายเรียนรู้การเขียนโปรแกรมกับ EPT สามารถติดต่อขอข้อมูลเพิ่มเติมได้ที่เว็บไซต์ของเราครับ!
หมายเหตุ: ข้อมูลในบทความนี้อาจจะผิด โปรดตรวจสอบความถูกต้องของบทความอีกครั้งหนึ่ง บทความนี้ไม่สามารถนำไปใช้อ้างอิงใด ๆ ได้ ทาง EPT ไม่ขอยืนยันความถูกต้อง และไม่ขอรับผิดชอบต่อความเสียหายใดที่เกิดจากบทความชุดนี้ทั้งทางทรัพย์สิน ร่างกาย หรือจิตใจของผู้อ่านและผู้เกี่ยวข้อง
หากมีข้อผิดพลาด/ต้องการพูดคุยเพิ่มเติมเกี่ยวกับบทความนี้ กรุณาแจ้งที่ http://m.me/Expert.Programming.Tutor
085-350-7540 (DTAC)
084-88-00-255 (AIS)
026-111-618
หรือทาง EMAIL: NTPRINTF@GMAIL.COM