Nó yêu cầu một lời giải thích chi tiết nhưng tôi sẽ cố gắng phác thảo sự khác biệt theo hiểu biết của mình.
Các mẫu là điểm chung được chắt lọc mà bạn tìm thấy trong các chương trình. Nó cho phép chúng tôi giải cấu trúc một cấu trúc phức tạp lớn và xây dựng bằng cách sử dụng các bộ phận đơn giản. Nó cung cấp một giải pháp chung cho một lớp vấn đề.
Một phần mềm phức tạp lớn trải qua một loạt các giải cấu trúc ở các cấp độ khác nhau. Ở cấp độ lớn, các mẫu kiến trúc là công cụ. Ở cấp độ nhỏ hơn, các mẫu thiết kế là công cụ và ở cấp độ triển khai, các mô hình lập trình là công cụ.
Một mô hình có thể xảy ra ở các mức độ rất khác nhau. Xem Fractals . Sắp xếp nhanh, Sắp xếp hợp nhất là tất cả các mẫu thuật toán để tổ chức một nhóm các phần tử theo một thứ tự.
Để có một cái nhìn đơn giản nhất:
- Mô hình lập trình - cụ thể cho ngôn ngữ lập trình
- Mẫu thiết kế - giải quyết các vấn đề tái diễn trong xây dựng phần mềm
- Các mẫu kiến trúc - tổ chức cấu trúc cơ bản cho hệ thống phần mềm
Idioms là kỹ thuật lập trình theo mô hình cụ thể và ngôn ngữ cụ thể để điền vào các chi tiết cấp thấp.
Các mẫu thiết kế thường được kết hợp với các điểm chung cấp mã. Nó cung cấp các chương trình khác nhau để tinh chỉnh và xây dựng các hệ thống con nhỏ hơn. Nó thường bị ảnh hưởng bởi ngôn ngữ lập trình. Một số mô hình nhạt đi thành không đáng kể do mô hình ngôn ngữ . Các mẫu thiết kế là các chiến thuật quy mô trung bình giúp loại bỏ một số cấu trúc và hành vi của các thực thể và các mối quan hệ của chúng.
Trong khi các mẫu kiến trúc được coi là điểm chung ở cấp độ cao hơn các mẫu thiết kế. Các mẫu kiến trúc là các chiến lược cấp cao liên quan đến các thành phần quy mô lớn, các thuộc tính và cơ chế toàn cầu của một hệ thống.
Làm thế nào các mẫu thu được? Xuyên qua:
- tái sử dụng,
- phân loại
- và cuối cùng là sự trừu tượng để chắt lọc những điểm chung.
Nếu bạn đã làm theo những suy nghĩ được trình bày ở trên. Bạn sẽ thấy rằng Singleton là một "mẫu thiết kế" trong khi MVC là một trong những mẫu "kiến trúc" để giải quyết các mối quan tâm tách biệt.
Hãy thử đọc tiếp:
- http://en.wikipedia.org/wiki/Architectural_pattern_(computer_science)
- http://en.wikipedia.org/wiki/Design_pattern
- http://en.wikipedia.org/wiki/Anti-pattern