📝 Alexandrian Patterns: Từ Kiến Trúc Xây Dựng đến Design Patterns trong Phần Mềm
1️⃣ Giới thiệu về Alexandrian Patterns
Alexandrian Patterns xuất phát từ công trình nổi tiếng A Pattern Language (1977) của Christopher Alexander, một kiến trúc sư và nhà lý luận thiết kế người Áo-Mỹ. Trong cuốn sách này, Alexander cùng các cộng sự đã tổng hợp 253 pattern thiết kế kiến trúc, mô tả cách con người tương tác với không gian và cách xây dựng môi trường sống hài hòa, tự nhiên.
Mỗi pattern là một đơn vị tri thức độc lập, bao gồm:
- Tên pattern (Name)
- Vấn đề (Problem): Một vấn đề tái diễn trong thiết kế.
- Bối cảnh áp dụng (Context)
- Giải pháp (Solution): Cách giải quyết hiệu quả đã được thử nghiệm.
2️⃣ Triết lý của Alexandrian Patterns
- Con người làm trung tâm
- Hướng dẫn thay vì ràng buộc
- Tái sử dụng tri thức
3️⃣ Ảnh hưởng trong phát triển phần mềm
Năm 1994, bốn tác giả Gang of Four đã xuất bản cuốn Design Patterns: Elements of Reusable Object-Oriented Software, lấy cảm hứng từ phương pháp luận của Alexander.
Các Software Design Patterns cũng tuân theo cấu trúc:
- Tên pattern
- Vấn đề
- Bối cảnh
- Giải pháp
4️⃣ Điểm chung giữa Alexandrian Patterns và Software Design Patterns
Alexandrian Patterns | Software Design Patterns |
---|---|
Giải quyết vấn đề thiết kế không gian | Giải quyết vấn đề thiết kế phần mềm |
Đặt con người và trải nghiệm vào trung tâm | Đặt nhà phát triển và sự bảo trì phần mềm vào trung tâm |
Hệ thống pattern như một “ngôn ngữ thiết kế” | Xây dựng “ngôn ngữ thiết kế phần mềm” giúp giao tiếp tốt hơn |
5️⃣ Minh họa cụ thể
⭐ Observer Pattern
- Observer Pattern: Tách subject và observer, loose coupling.
- Liên hệ: “Activity Nodes” - các nút hoạt động lan tỏa ảnh hưởng.
⭐ Singleton Pattern
- Singleton Pattern: Một instance duy nhất và global access.
- Liên hệ: “Main Entrance” - một cổng chính duy nhất rõ ràng.
⭐ Factory Method Pattern
- Factory Method: Interface tạo object, subclass quyết định instance.
- Liên hệ: “Building Complex” - cách tổ chức không gian linh hoạt.
6️⃣ Sơ đồ minh họa
Trong kiến trúc
Trong phần mềm
🔔 Kết luận
Alexandrian Patterns không chỉ là di sản của ngành kiến trúc mà còn là nguồn cảm hứng cốt lõi cho ngành phát triển phần mềm hiện đại.