Builder Pattern ใน Java
วันนี้เรามารู้จักกับ Builder Pattern กัน โดยเราจะใช้ Java เป็นตัวอย่างประกอบ เจ้า Design Pattern นี้ใช้สำหรับประยุกต์กับการสร้างออบเจกต์ Model หรือ Entity โดยเฉพาะครับ ว่าแล้วไปดูกันเลย
แนวคิดการเขียนโปรแกรมแบบ Oriented ต่างๆ
ระหว่างที่ผมกำลังเขียนหนังสือเล่มใหม่ ซึ่งได้มีการพูดถึงแนวคิดแบบ Component-oriented Architecture ก็ได้ฉุกคิดขึ้นมาว่า คงมีหลายๆคนที่สับสนกับแนวคิด Oriented แบบต่างๆ และมีข้อสงสัยเช่น Object-oriented Programming ต่างจาก Component-oriented Architecture อย่างไร เราควรใช้แบบไหนดี แล้ว Service-oriented Architecture หล่ะมันคืออะไร เป็นต้น ไหนจะตีกับเรื่องของ Design Patterns แบบต่างๆอีก ดังนั้นผมจึงตั้งใจเขียนบทความนี้ขึ้นมาเพื่ออธิบายความสัมพันธ์ของแนวคิดดังต่อไปนี้คือ
- Object-oriented Programming (OOP)
- Component-oriented Architecture (COA)
- Service-oriented Architecture (SOA)
ว่าแล้วก็ไปอ่านกันเลยครับ
FileUpload ด้วย Servlet
Servlet 3.0 ที่มากับ JavaEE 6 นั้น มีอยู่ฟีเจอร์หนึ่งที่น่าสนใจมาก นั่นก็คือการทำ File Uploading ครับ ฟีเจอร์นี้ทำให้การสร้างโปรแกรมสำหรับอัพโหลดไฟล์ง่ายขึ้นมากๆ แต่ทว่าการจะดาวน์โหลดไฟล์กลับไปใช้นั้น กลับไม่ใช่เรื่องง่ายเลย ดังนั้นวันนี้ผมจะมาพูดถึงฟีเจอร์ใหม่นี้ไปพร้อมๆกับการทำ Virtual Directories ใน Tomcat และ GlassFish เพื่อให้ได้โปรแกรมที่มีความสามารถทั้งการทำอัพโหลดและดาวน์โหลดไฟล์ได้ครับ ว่าแล้วก็ไปดูกันเลย
Polymorphism คืออะไร
หลังจากที่เราได้รู้จักกับ Encapsulation และ Inheritance ไปในบทความ "Encapsulation คืออะไร" และ "Inheritance คืออะไร" ที่ผ่านมา บทความนี้ผมจะมาพูดเรื่อง Polymorphism ซึ่งเป็นฟีเจอร์ที่สำคัญมากของภาษาแบบออกเจกต์ (OOP) เพราะมันช่วยทำให้ระบบมีความยืดหยุ่นสูง อีกทั้ง Design Patterns หลายๆตัวก็ต้องพึ่งพาฟีเจอร์ทางภาษานี้ อย่างไรก็ตามเรื่องนี้เป็นเรื่องที่ค่อนข้างเข้าใจได้ยาก โดยเฉพาะกับผู้เริ่มต้นเรียนรู้ เพราะมักจะนึกภาพไม่ออกว่าจะนำมันไปประยุกต์ใช้อย่างไร ใช้แล้วได้อะไร ดังนั้นบทความนี้ผมจะเริ่มต้นจากตัวอย่างง่ายๆไปจนกระทั่งตัวอย่างจริงที่จับต้องได้ครับ
(หากใครยังไม่ได้อ่านบทความ "Inheritance คืออะไร" แนะนำให้ไปอ่านก่อนนะครับ เพราะใช้ตัวอย่างต่อเนื่องจากบทความนั้น)
Inheritance คืออะไร
บทความนี้เป็นบทความภาคต่อเกี่ยวกับ "ฟีเจอร์ของภาษาออบเจกต์" โดยในบทความที่แล้ว ("Encapsulation คืออะไร") ผมได้พูดถึงเรื่องของ Encapsulation ไป ในบทความนี้ผมจะมาพูดถึงฟีเจอร์ทางภาษาที่ชื่อว่า Inheritance พร้อมทั้งยกตัวอย่างด้วย Java เหมือนเช่นเคย เรื่องนี้เป็นเรื่องที่เข้าใจได้ง่ายกว่า Encapsulation และ Polymorphism นะครับ ตรงๆตัวไม่ได้ซับซ้อนอะไร จากการที่สอบถามหลายๆคนก็มักจะได้คำตอบว่าเข้าใจ ถามว่าแปลว่าอะไรก็ตอบได้เช่นกัน พอมันแปลได้แล้วความหมายมันใกล้เคียงกับสิ่งที่เราเรียน เราก็มักจะเข้าใจและจำได้ ถ้าเช่นนั้นคุณก็ลองตอบคำถามในใจก่อนอ่านนะว่า มันแปลว่าอะไรแล้วน่าจะเกี่ยวกับอะไรในการเขียนโปรแกรม ถ้าได้คำตอบแล้วก็ไปลุยกันเลย ดูว่ามันจะเหมือนกับที่คิดไว้หรือไม่