Saturday, August 18, 2007

พ.ศ. 1324
คอมโพสิตแพตเทิร์น (Composite pattern) เป็นดีไซน์แพตเทิร์น ที่จัดโครงสร้างของอ็อบเจกต์ที่มีลักษณะการทำงานคล้ายกันและเป็นส่วนประกอบย่อยๆ ของระบบใหญ่ให้อยู่ในรูปแบบโครงสร้างต้นไม้ คลาสผู้ใช้สามารถปฏิบัติต่อส่วนต่างๆ ของคอมโพสิตในแบบเดียวกันโดยไม่ต้องคำนึงว่าเป็นส่วนปลายหรือส่วนกลางของแผนผังต้นไม้ ตัวอย่างเช่นโครงสร้างของบทความหนึ่งๆ แบ่งเป็นหลายๆ ย่อหน้า แต่ละย่อหน้ายังแบ่งย่อยต่อไปได้เป็นประโยค คำ และตัวอักษรในที่สุด

ตัวอย่างโปรแกรม
ตัวอย่างโปรแกรมเพื่อแสดงโครงสร้างของ File System โดยแบ่งเป็นแฟ้มและเอกสารที่อยู่ภายในแฟ้ม และการแสดงรายชื่อของแฟ้มและเอกสารภายใน
อินเตอร์เฟส File เป็นแม่แบบของส่วนประกอบต่างๆ ของคอมโพสิต นิยามเมธอด list() เพื่อให้แต่ละองค์ประกอบพิมพ์ชื่อของตัวเองและองค์ประกอบย่อยที่อยู่ภายใต้
คลาส Folder สามารถมีอ็อบเจกต์ชนิด File อื่นๆ อยู่ภายใต้ได้ คือมีได้ทั้ง Folder ย่อยและ Document เมธอด list() จะพิมพ์ชื่อของตนเองและตามด้วยการเรียกเมธอด list() ของทุก File ที่อยู่ภายใต้ Folder
เมธอด addFile() และ removeFile() ทำหน้าที่จัดการกับ File ย่อยๆ ภายใต้ Folder
คลาส Document เป็นส่วนปลายสุดหรือส่วนย่อยที่สุดของคอมโพสิต ไม่สามารถมีส่วนอื่นๆ ภายใต้ ดังนั้นเมธอด list() จึงมีหน้าที่เพียงพิมพ์ชื่อของตนเองและเมธอด addFile() และ removeFile() ไม่ต้องทำอะไร
การเรียกใช้งาน