Umm ... không có thứ nào mà mọi người đề cập là mẫu thiết kế.
GOF được viết hoàn toàn bằng Java. Nó khám phá không gian đó khá tốt.Tuy nhiên một khi bạn đi vào các ngôn ngữ khác, một số mẫu không còn cần thiết nữa (Observer hiếm khi được sử dụng trong một ngôn ngữ như C# hỗ trợ sự kiện) và một số mẫu mới xuất hiện. Chọn cho mình những cuốn sách Pro JavaScript Design Patterns hoặc Design Patterns In Ruby và xem điều gì sẽ xảy ra với những con cá mập đứng trong những mô hình rất khác nhau này.
Mục yêu thích của tôi gần đây đã đến từ việc dựa vào chức năng trôi dạt của ngôn ngữ hiện đại. Tôi là một fan hâm mộ lớn của nested closures và các cách chức năng của việc giải quyết một số vấn đề tương tự mà GoF thực hiện (một lần nữa, hãy xem cuốn sách Ruby để biết các ví dụ tuyệt vời). Tôi cũng đang trong tình yêu với ý tưởng của nội bộ domain-specific languages mà mở ra thành một loạt toàn bộ các mẫu thiết kế của riêng mình (bao gồm cả đóng cửa lồng nhau). Ngoài ra sự kiện tập hợp dường như đã sẵn sàng để đạt được nó lớn trong thế giới .Net trong tương lai gần.
Một số khác lớn đã nhấn cảnh nhưng không được thảo luận nhiều trong GoF - có lẽ vì chúng cao cấp hơn sau đó những gì những kẻ đã đi - là Inversion Of Control Containers, Message Bussing, Aspect-Oriented -Chương trình, Model-View-Controller, Model-View-Presenter, Model-View-ViewModel, và ilk của họ.
Nhân tiện, đây không phải là các mẫu thiết kế, nhưng nếu bạn đang muốn tiến bộ vượt ra ngoài TDD, hãy bắt đầu xem xét Phát triển theo hành vi và bối cảnh/đặc điểm kỹ thuật.
Nguồn
2010-05-07 17:09:09
Một lần nữa, muốn chỉ ra rằng chúng không thực sự là mẫu thiết kế, chúng là các mẫu kiến trúc. Tương tự, nhưng mức độ cao hơn nhiều. –