9/30/2012

สร้าง DSL อย่างง่ายด้วย Category

Category เป็น 1 ใน feature ของ Groovy ที่ช่วยให้เราสามารถสร้าง DSL อย่างง่ายๆ ได้ โดยใช้คู่กับ use  อย่างแรกเราจะสร้าง class ชื่อ Distance

จากนั้นสร้าง Category ขึ้นมาใช้ชื่อคลาสว่า NumberCategory โดยแปะ annotation ไว้ว่า Category นี้ใช้สำหรับวัตถุของคลาส Number

จากนั้นเราจะใช้ use โดยบอกว่าจะใช้ Category ไหนตามตัวอย่าง

use จะบอกว่าเราจะต้องใช้ Category ไหน และใน block ของ use เราจะสามารถใช้ method ของคลาสที่เป็น Category ได้เลย ในตัวอย่างจะเห็นว่าเราเรียก method getMeters() (จริงๆ groovy ทำเป็น beans ให้เราจึงสามารถใช้ meters ได้) โดยเรียกจากวัตถุของ Number นั้นคือตัวเลข 300 นั้นเอง