Wednesday, 11 July 2012

Design Pattern - Facade Pattern

สำหรับ Pattern อันนี้ ผมคิดว่าน่าจะเป็น Pattern ที่เข้าใจง่ายที่สุดในบรรดา Design Pattern ตัวอื่นๆ และผมเชื่อว่าหลายๆคนอาจจะเคยใช้อยู่แล้ว เพียงแต่ไม่รู้ว่ามันมีชื่อว่า Facade Pattern คำว่า Facade เป็นศัพท์ทางสถาปัตยกรรมมีที่มาจากภาษาฝรั่งเศส แปลว่า ด้านหน้าของอาคาร ซึ่งโดยปกติด้านหน้าของอาคารที่เราเห็นทั่วไป มักจะได้รับการตกแต่งเป็นกรณีพิเศษเพื่อให้ดูสวยงาม น่ามอง ซึ่งเป็นที่มาของ Facade Pattern นั่นเอง 

Facade of Saint Peter's basilica in Vatican City
Facade Pattern เป็นเทคนิคการออกแบบที่่มีวัตถุประสงค์เพื่อลดความ Complex ของการเขียน Program ลง โดยการนำ Code ที่การเรียกใช้งานอาจประกอบด้วยหลายขั้นตอน มา Wrap ไว้ใน Object ใหม่ ที่่อาจเรียกใช้งานได้ง่ายขึ้น โดยจากการเรียกใช้งานหลายขั้นตอน พอ Wrap แล้วอาจเหลือเพียงขั้นตอนเดียว เป็นต้น เดี๋ยวลองดูภาพประกอบกันนะครับ


จากในภาพ Client1 และ Client2 เรียกใช้งาน doSomething() ผ่าน Facade Object แทนที่จะต้องสร้าง Class ขึ้นมาทีละ Class และเรียกใช้งานเอง ซึ่งค่อนข้างจะวุ่นวาย สังเกตุว่าการใช้ Facade Pattern จะช่วยทำให้ Code ที่เราเขียนสั้นลง เข้าใจได้ง่ายขึ้น อีกทั้งยังดูแลได้ง่ายขึ้นอีกด้วย ก็ลองเอาไปประยุกต์ใช้งานกันดูแล้วกันนะครับ

แหล่งที่มา: http://en.wikipedia.org/wiki/Facade_pattern

No comments:

Post a Comment