อาทิตย์นี้นั่งเขียน Cache ให้ Flex โดยการเอาโค้ดที่อยู่ในฝั่งจาวามาดัดแปลงนิดหน่อย(ฝั่งจาวาก็เขียนเอง ฝั่ง Flex ก็เขียนเอง – -”) แต่ว่าด้วยความเคยชินในรูปแบบของจาวาทำให้อยากเขียนให้ Flex มันมี Abstract class ด้วยก็เลยนั่งขุดๆ หาว่าจะทำยังไงได้บ้าง สุดท้ายเลยไปดูว่า Abstract class มันมีคุณสมบัติยังไงบ้างแทน ท่าทางจะง่ายกว่า ^^!
Abstract class ในฝั่งจาวาจริงๆ แล้วมันก็มีคุณสมบัติง่ายๆ คือสร้างตรงๆ ไม่ได้ด้วยคีย์เวิร์ด new ต้องเอาไปสืบทอดต่อ แล้วสร้างลูกขึ้นมาแทน ไว้สำหรับนิยามพฤติกรรมพื้นฐานที่ลูกน่าจะมีเหมือนกันเอาไว้ และก็สามารถกำหนดพฤติกรรมบางอย่างได้ด้วย โดยให้ลูกเอาไปทำต่อเองว่าลูกแต่ละตัวพฤติกรรมเดียวกันนี้ จะมีลักษณะท่าทางยังไง อย่างอื่นก็เหมือนคลาสโดยทั่วไป
คราวนี้มาฝั่ง Flex ค้นๆ ใน Google ดูเหมือนจะมีคนทำไว้บ้างแล้วโดยการบังคับใน Constructor ให้ไล่เช็คว่า มีการเขียน function หรือป่าว ถ้าไม่มีก็โวยวายออกมาแต่ว่ามันต้องใช้ของเพิ่มเติมนี่สิ สุดท้ายเลยเล่นง่ายได้โค้ดออกมาตามด้านล่าง
class AbstractClass {
function AbstractClass():void { throw new Error("Must inherit this class") }
function firstBehavior():void { throw new Error("Must implement this function") }
function secondBehavior():void {
Alert("Hello, world")
firstBehavior()
}
}
ง่ายกว่าที่คิดเยอะเลย ^^!