Design pattern đã tiến hóa khi các ngôn ngữ và mô hình lập trình thay đổi — một số pattern kinh điển nay được tích hợp vào ngôn ngữ hoặc trở nên không cần thiết nhờ các tính năng ngôn ngữ, trong khi các pattern mới xuất hiện cho các nhu cầu hiện đại (functional, reactive, distributed). Hiểu sự tiến hóa này phản ánh góc nhìn sâu sắc.
Các pattern kinh điển được hấp thụ vào ngôn ngữ
Một số pattern GoF nay là TÍNH NĂNG NGÔN NGỮ hoặc đơn giản hơn nhiều:
→ ITERATOR → iteration tích hợp sẵn (for-of, generator) trong hầu hết ngôn ngữ
→ STRATEGY / Command → FUNCTION hạng nhất / lambda làm chúng trở nên trivial (chỉ cần truyền
một function — không cần các phân cấp class phức tạp)
→ OBSERVER → event tích hợp sẵn, thư viện reactive, tính năng ngôn ngữ (signals)
→ SINGLETON → module (một module về cơ bản là một singleton trong nhiều ngôn ngữ)
→ các tính năng functional (function như giá trị) đã đơn giản hóa nhiều pattern "behavioral"
