เงื่อนข้อตกลงในการใช้บทความนี้
จากตอนที่ 1 และ 2 หลายท่านคงสังเกตุเห็นคำว่า Static และ Instance กันมาบ้างแล้ว หลายท่านอาจไม่ได้ใส่ใจอะไรกับ 2 คำนี้
แต่ 2 คำนี้มีความสำคัญระดับเชิงโครงสร้างอย่างมาก ซึ่งโดยปรกติแล้วจะกล่าวถึงหลังจากศึกษา OOP ขึ้นไปในระดับสูง
แต่ผมเห็นว่าการทำความเข้าใจเกี่ยวกับ 2 คำนี้เป็นสิ่งจำเป็นอย่างมากสำหรับการวางรากฐานในการเขียนโปรแกรม
ซึ่งเมื่อบอกว่าระดับเชิงโครงสร้างนั้นผมหมายถึง Class, Method ตลอดจน Variant เลยครับ
แต่ก่อนจะไปพูดถึงเรื่องนี้ ผมขอลงรายละเอียดเกี่ยวกับ Variant กันก่อนนะครับ
Variant มีด้วยกันอยู่ 2 ประเภทได้แก่
1.
Register Variant เป็นจุดอ้างอิงที่ได้รับการลงทะเบียน หรือก็คือ Variant บน Class นั่นเองครับ
2.
Local Variant เป็นจุดอ้างอิงภายใน Method นั้นๆ เท่านั้น
ซึ่งจะไม่ได้รับการลงทะเบียนและจะถูกทำลายทันทีหลังจากจบ Method แล้ว
ดังนี้ Local Variant จึงไม่ได้รับผลกระทบใดๆ จาก Static หรือ Instance ครับ
ทีนี้เรามาดูกันครับว่า Static และ Instance นั้นมีผลกระทบอย่างไรต่อโครงสร้างบ้าง
Static
-
Class
จะทำให้โครงสร้างนั้นๆ ไม่สามารถสร้างใหม่หรือเพิ่มเติมต่อยอดโครงสร้างได้อีก
-
Method
จะทำให้ชุดคำสั่งนั้นๆ ไม่ผูกติดกับโครงสร้างใหม่ใดๆ และไม่สามารถปรับเปลี่ยนชุดคำสั่งนั้นๆ ภายหลังได้(Override)
-
Variant
จะทำให้จุดอ้างอิงนั้นๆ ไม่ถูกสร้างใหม่ ราวกับว่าทำให้จุดอ้างอิงนั้นๆ เป็นจุดอ้างอิงแบบ Unique สำหรับโครงสร้าง
Instance
-
Class
โครงสร้างจะสามารถทำการสร้างตัวเองขึ้นใหม่ได้เรื่อยๆ และยังสามารถเพิ่มเติมต่อยอดโครงสร้างภายหลังได้อีกด้วย
-
Method
ชุดคำสั่งนั้นๆ จะผูกติดโครงสร้างที่ถูกสร้างขึ้นมาทำให้เรียกใช้งานจุดอ้างอิงภายในโครงสร้างนั้นๆ ได้
อีกทั้งยังสามารถปรับเปลี่ยนชุดคำสั่งให้เหมาะกับโครงสร้างที่ต่อยอดขึ้นมาภายหลังได้อีกด้วย
-
Variant
จุดอ้างอิงจะถูกผูกติดกับโครงสร้างที่ถูกสร้างขึ้นมาใหม่ ทำให้แต่ละโครงสร้างใหม่นั้นมีจุดอ้างอิงเป็นของตัวเอง
** Static Class นั้น
ไม่สามารถ มี Instance Method และ Instance Variant
แต่ Instance Class นั้น
สามารถ มี Static Method และ Static Variant **
** Instance Class/Variant นั้นจะต้องใช้คำสั่งสร้างก่อนจึงจะใช้งานได้แต่ Static Class/Variant นั้นสามารถใช้งานได้เลย**
หากบทความนี้ถูกใจ เป็นประโยชน์ ขอรบกวนผู้อ่านกด [+] ด้วยนะครับ ขอบคุณครับ
[Tutorial] สอนภาษา .Net :: ตอนที่ 03 Static และ Instance คืออะไร
จากตอนที่ 1 และ 2 หลายท่านคงสังเกตุเห็นคำว่า Static และ Instance กันมาบ้างแล้ว หลายท่านอาจไม่ได้ใส่ใจอะไรกับ 2 คำนี้
แต่ 2 คำนี้มีความสำคัญระดับเชิงโครงสร้างอย่างมาก ซึ่งโดยปรกติแล้วจะกล่าวถึงหลังจากศึกษา OOP ขึ้นไปในระดับสูง
แต่ผมเห็นว่าการทำความเข้าใจเกี่ยวกับ 2 คำนี้เป็นสิ่งจำเป็นอย่างมากสำหรับการวางรากฐานในการเขียนโปรแกรม
ซึ่งเมื่อบอกว่าระดับเชิงโครงสร้างนั้นผมหมายถึง Class, Method ตลอดจน Variant เลยครับ
แต่ก่อนจะไปพูดถึงเรื่องนี้ ผมขอลงรายละเอียดเกี่ยวกับ Variant กันก่อนนะครับ
Variant มีด้วยกันอยู่ 2 ประเภทได้แก่
1. Register Variant เป็นจุดอ้างอิงที่ได้รับการลงทะเบียน หรือก็คือ Variant บน Class นั่นเองครับ
2. Local Variant เป็นจุดอ้างอิงภายใน Method นั้นๆ เท่านั้น
ซึ่งจะไม่ได้รับการลงทะเบียนและจะถูกทำลายทันทีหลังจากจบ Method แล้ว
ดังนี้ Local Variant จึงไม่ได้รับผลกระทบใดๆ จาก Static หรือ Instance ครับ
ทีนี้เรามาดูกันครับว่า Static และ Instance นั้นมีผลกระทบอย่างไรต่อโครงสร้างบ้าง
Static
- Class
จะทำให้โครงสร้างนั้นๆ ไม่สามารถสร้างใหม่หรือเพิ่มเติมต่อยอดโครงสร้างได้อีก
- Method
จะทำให้ชุดคำสั่งนั้นๆ ไม่ผูกติดกับโครงสร้างใหม่ใดๆ และไม่สามารถปรับเปลี่ยนชุดคำสั่งนั้นๆ ภายหลังได้(Override)
- Variant
จะทำให้จุดอ้างอิงนั้นๆ ไม่ถูกสร้างใหม่ ราวกับว่าทำให้จุดอ้างอิงนั้นๆ เป็นจุดอ้างอิงแบบ Unique สำหรับโครงสร้าง
Instance
- Class
โครงสร้างจะสามารถทำการสร้างตัวเองขึ้นใหม่ได้เรื่อยๆ และยังสามารถเพิ่มเติมต่อยอดโครงสร้างภายหลังได้อีกด้วย
- Method
ชุดคำสั่งนั้นๆ จะผูกติดโครงสร้างที่ถูกสร้างขึ้นมาทำให้เรียกใช้งานจุดอ้างอิงภายในโครงสร้างนั้นๆ ได้
อีกทั้งยังสามารถปรับเปลี่ยนชุดคำสั่งให้เหมาะกับโครงสร้างที่ต่อยอดขึ้นมาภายหลังได้อีกด้วย
- Variant
จุดอ้างอิงจะถูกผูกติดกับโครงสร้างที่ถูกสร้างขึ้นมาใหม่ ทำให้แต่ละโครงสร้างใหม่นั้นมีจุดอ้างอิงเป็นของตัวเอง
** Static Class นั้นไม่สามารถ มี Instance Method และ Instance Variant
แต่ Instance Class นั้นสามารถ มี Static Method และ Static Variant **
** Instance Class/Variant นั้นจะต้องใช้คำสั่งสร้างก่อนจึงจะใช้งานได้แต่ Static Class/Variant นั้นสามารถใช้งานได้เลย**
หากบทความนี้ถูกใจ เป็นประโยชน์ ขอรบกวนผู้อ่านกด [+] ด้วยนะครับ ขอบคุณครับ