CÁC NGUYÊN TẮC TRONG DESIGN PATTERN
What is Design Pattern? Việc thiết kế chương trình hoặc phần mềm là một vấn đề thường xuyên phải thực hiện đối với các kỹ sư phần mềm. Tuy nhiên, không phải lúc nào việc này cũng được thực hiện một cách hoàn hảo, đôi khi vẫn sẽ xảy ra sai sót, rủi ro vì sẽ rất dễ bỏ qua các yêu cầu hay những ...
What is Design Pattern?
Việc thiết kế chương trình hoặc phần mềm là một vấn đề thường xuyên phải thực hiện đối với các kỹ sư phần mềm. Tuy nhiên, không phải lúc nào việc này cũng được thực hiện một cách hoàn hảo, đôi khi vẫn sẽ xảy ra sai sót, rủi ro vì sẽ rất dễ bỏ qua các yêu cầu hay những giải pháp dù chúng được lặp lại nhiều lần. Điều này khiến công việc thiết kế phần mềm trở nên phức tạp và khó kiểm soát.
Đòi hỏi một kỹ sư phần mềm phải nắm bắt và hiểu hết được toàn bộ các giải pháp cho mọi vấn đề khi thiết kế. Việc này gần như rất khó thực hiện vì công nghệ phần mềm luôn thay đổi, với mỗi phần mềm lại có những yêu cầu khác nhau đòi hỏi việc đưa ra giải pháp cũng khác nhau, hơn nữa lại có quá nhiều giải pháp cho một vấn đề để các kỹ sư lựa chọn, mà không phải kỹ sư nào cũng nắm bắt hết được tất cả các giải pháp.
Tuy nhiên, vào năm 1995, bộ tứ GoF (Gang of Four) gồm Erich Gamma, Richard Helm, Ralph Johnson, và John Vlissides đã nỗ lực đưa ra cách xây dựng phần mềm hiệu quả hơn, với quyển sách “Design Patterns: Elements of Reusable Object Oriented Software”.
Quyển sách này đã tổng hợp và giới thiệu được hầu như toàn bộ các kỹ thuật phần mềm trên thế giới thành khái niệm về các design patterns.
Các design patterns có thể coi là một giải pháp đóng gói cho một vấn đề thiết kế chung. Nó giúp các kỹ sư phần mềm giới hạn được các giải pháp thiết kế phần mềm thành các ý tưởng và mô hình đóng gói mà không phụ thuộc vào bất cứ công nghệ nào, khiến việc thiết kế phần mềm dễ dàng kiểm soát hơn.
Ngoài ra, việc đưa ra khái niệm design patterns còn giúp cho việc trao đổi ý tưởng và giải pháp thiết kế giữa các kỹ sư cũng dễ dàng hơn vì mọi người đều có chung ý niệm về các giải pháp theo pattern.
Patterns for Patterns
Nguyên tắc của 1 pattern được tóm gọn trong 5 điểm chính sau:
- “Separate out the things that change from those that stay the same.”
- “Program to an interface, not an implementation”
- “Prefer composition over inheritance”
- “Delegate, delegate, delegate.”
- “You ain’t gonna need it”
**“Separate out the things that change from those that stay the same.”