ช่วงนี้ตอบคำถามเกี่ยวกับเรื่องนี้บ่อยเอามาเขียนซะเลย เริ่มจาก misui บ่นๆ มาว่าทำยังไงให้ Tree ในจาวาเปลี่ยนแปลงข้อมูลในตารางเมื่อข้อมูลจริงมันเปลี่ยนไป โดยก็บอกว่าตอนนี้ทำไว้เป็นลูปวนไปเรื่อยๆ ฟังปุ๊บก็เอะใจทันที เอ๊ะ Tree ในจาวามันมี Event Listener นี่หว่าก็เลยบอกไปว่าดูฟังก์ชั่นพวกนั้นซะ แล้วก็เล่าไปนิดหน่อยว่ามันไว้ทำไรบ้าง มาวันนี้เจออีกกรณี แต่รูปแบบคนละเรื่องเลยคือ MSN Library ที่ใช้อยู่เวลามันทำอะไรมันจะทำอยู่อีกเธรดเกิดเหตุการณ์อะไรขึ้นก็ค่อยเรียกฟังก์ชั่นที่ลงทะเบียนไว้ คราวนี้มันเกิดเหตุการณ์นั้นจริงแต่ว่ามันไม่สามารถส่งข้อความไปบอกไอ้คนที่ต้องใช้มันได้ ก็เลยต้องหาอะไรมารับมันอีกต่อ แล้วก็ให้คนที่ต้องการมาคอยฟังซะ(แต่จริงๆ มันไม่ใช่อย่างนี้หรอก ไอ้คนฟังมันดันอยู่ชั้นบนๆ เป็นตัวติดต่อเว็บ แต่ไอ้คนไปติดต่อ MSN มันดันวิ่งๆ อยู่ด้านล่าง พอเจอปัญหาจะวิ่งไปบอกชั้นบนเลยลำบาก) อ่ะเล่าถึงกรณีตัวอย่างไปซะเยอะ แต่ไม่เห็นเขียนถึงคำว่า Observer เลย จริงๆแล้วมันก็คือตัวเดียวกับ Event Listener นั่นแหละ หน้าที่ของมันนั้นก็แสนง่ายเมื่อมีเหตุการณ์อะไรขึ้นก็คอยบอกให้ทุกคนที่เกี่ยวข้องรับรู้นั่นเอง พวกส่วนที่เป็นหน้าตาทั้งหลายเลยมักต้องมีรูปแบบพวกนี้อยู่ในตัว ถ้าใครเขียน Flex มาเยอะน่าจะรู้ดีเลยหละ เพราะ Component ทุกตัวเป็น EventDispatcher ที่สามารถเรียกคู่กรณีที่ต้องรับหน้าที่ต่อจากมัน หรืออยาก Swing ในจาวาก็มีรูปแบบที่เหมือนกัน แต่ใช่ว่าจะใช้แค่ใน UI [...]
Tag Archives | observer