หลังจากที่เคยอธิบายเกี่ยววิธีการลดใช้งาน IF-ELSE statement ไปบ้างแล้วจาก Blog

ซึ่งในโลกของ OOP(Object Oriented Programming) นั้นยังมีวิธีการอื่นๆ อีกมาก
เพื่อลดจำนวนการเขียนเงื่อนไขต่างๆ ใน  code ลงไป
ผมไปพบวิธีที่ชาวโลกเขาใช้งาน และนำมาอธิบายไว้ น่าสนใจดี
เลยเอามาลองทำดู จากที่นี่  Factory Without IF-ELSE

ใช้ตัวอย่าง การ validate ข้อมูลรูปแบบเดิม หรือ แบบปกติที่เราๆ ทำกันอยู่ ใช่ไหมนะ ?

เรานำมาแก้ไขในเบื้องต้น โดยแยกการสร้าง validator แต่ละตัวออกมา ได้ดังนี้

พบว่าจะมี IF-ELSE หรือเงื่อนไขเพื่อตรวจสอบข้อมูลในแต่ละ rule เยอะมากๆ
ดังนั้น เรามาดูว่า สามารถลดการใช้งาน มันได้อย่างไรบ้าง

1. ใช้งานผ่าน Reflection API ของ Java

ตัวอย่าง code แบบง่ายๆ เป็นดังนี้

แต่ปัญหาที่เกิดขึ้นมาก็คือ ในการเรียกใช้งานนั้น ต้องใส่ชื่อ package และ class ให้ตรงกันไปเลย
ซึ่งมันไม่ค่อยสะดวกเท่าไร ตัวอย่างการเรียกใช้งานเป็นดังนี้

2. ใช้งานผ่าน Map จาก Java Collection Framework

เป็นวิธีการที่ง่ายมากๆ และมักจะถูกใช้งานบ่อย
โดยวิธีการนี้มันจะดูดีกว่าแบบ reflection เยอะเลย ดังนี้

3. ใช้งานผ่าน Enum ซึ่งเป็นความสามารถตั้งแต่ Java 5 (Tiger) แล้ว

โดยการใช้งานก็สะดวกดีนะครับ ดังตัวอย่าง

ทั้งสามวิธีนี้ มีความน่าสนใจในคนละแบบ
ดังนั้นลองนำไปใช้งานเล่นๆ ดูครับ
ว่ามันช่วยเหลือเราอะไรบ้างหรือไม่ !!!
หรือถ้ามีวิธีการอื่นๆ ก็เอามาแบ่งปันกันได้นะครับ …