LogoDuyệtSr. Data Engineer
HomeAboutPhotosInsightsCV

Footer

Logo

Resources

  • Rust Tiếng Việt
  • /archives
  • /series
  • /tags
  • Status

me@duyet.net

  • About
  • LinkedIn
  • Resume
  • Projects

© 2026 duyet.net | Sr. Data Engineer | 2026-02-27

Design Patterns là gì?

Note: This post is over 12 years old. The information may be outdated.

Design patterns là các giải pháp đã được tối ưu hóa, được tái sử dụng cho các vấn đề lập trình mà chúng ta gặp phải hàng ngày. Nó là một khuôn mẫu đã được suy nghĩ, giải quyết trong tình huống cụ thể rồi.

Các vấn đề mà bạn gặp phải có thể bạn sẽ tự nghĩ ra cách giải quyết nhưng có thể nó chưa phải là tối ưu. Design Pattern giúp bạn giải quyết vấn đề một cách tối ưu nhất, cung cấp cho bạn các giải pháp trong lập trình OOP. Nó không phải là ngôn ngữ cụ thể nào cả. Design patterns có thể thực hiện được ở phần lớn các ngôn ngữ lập trình. Ta thường gặp nó nhất trong lập trình OOP.

Tại sao phải sử dụng Design Patterns?

  • Design Pattern giúp bạn tái sử dụng mã lệnh và dẽ dàng mở rộng.
  • Nó là tập hơn những giải pháp đã được tối ưu hóa, đã được kiểm chứng để giải quyết các vấn đề trong software engineering. Vậy khi bạn gặp bất kỳ khó khăn gì, design patterns là kim chỉ nam giúp bạn giải quyết vấn đề thay vì tự tìm kiếm giải pháp cho một vấn đề đã được chứng minh.
  • Design pattern cung cấp giải pháp ở dạng tổng quát, giúp tăng tốc độ phát triển phần mềm bằng cách đưa ra các mô hình test, mô hình phát triển đã qua kiểm nghiệm.
  • Dùng lại các design pattern giúp tránh được các vấn đề tiềm ẩn có thể gây ra những lỗi lớn, dễ dàng nâng cấp, bảo trì về sau.
  • Giúp cho các lập trình viên có thể hiểu code của người khác 1 cách nhanh chóng (có thể hiểu là tính communicate). Mọi thành viên trong team có thể dễ dàng trao đổi với nhau để cùng xây dựng dự án mà k mất quá nhiều thời gian.

Khi nào nên sử dụng Design pattern?

Giúp cho chương trình của mình thực sự đơn giản. Việc sử dụng các design pattern sẽ giúp chúng ta giảm được thời gian và công sức suy nghĩ ra các cách giải quyết cho những vấn đề đã có lời giải.

Bạn có thể đọc qua cuốn "Head First Design Patterns" để có cái nhìn tổng quát hơn về design pattern.

Phân loại Design Patterns

Có 3 nhóm chính sau:

  • Creational Pattern (nhóm khởi tạo) gồm: Abstract Factory, Factory Method, Singleton, Builder, Prototype. Nó sẽ giúp bạn trong việc khởi tạo đối tượng, như bạn biết để khởi tạo bạn phải sử dụng từ khóa new, nhóm Creational Pattern sẽ sử dụng một số thủ thuật để khởi tạo đối tượng mà bạn sẽ không nhìn thấy từ khóa này.
  • Structural Pattern (nhóm cấu trúc) gồm: Adapter, Bridge, Composite, Decorator, Facade, Proxy và Flyweight. Nó dùng để thiết lập, định nghĩa quan hệ giữa các đối tượng.
  • Behavioral Pattern gồm: Interpreter, Template Method, Chain of Responsibility, Command, Iterator, Mediator, Memento, Observer, State, Strategy và Visitor. Nhóm này dùng trong thực hiện các hành vi của đối tượng.

Abstract Factory Design Pattern Example Diagram

Để học Design Patterns cần có gì?

  • Bốn đặc tính của OOP: Thừa kế, Đa hình, Trừu tượng, Bao đóng.
  • Khái niệm interface và abstract. Cái này cực kỳ quan trọng, để hiểu và áp dụng 2 khái niệm này có thể sẽ mất một thời gian, nhưng khi bạn nắm chắc nó bạn sẽ thấy nó thực sự cần thiết.
  • Bỏ tư duy theo lối cấu trúc, nâng tư duy hoàn toàn OOP.

Kết

  • Design patterns là 1 đoạn mô tả, hoặc 1 khuôn mẫu để giải quyết 1 vấn đề nào đó.
  • Không phải là thiết kế cuối cùng.
  • Cho phép code được tối ưu hóa, dễ tái sử dụng. Người khác dễ dàng nắm bắt được code của bạn. Dễ nâng cấp sửa chữa.
  • Giúp cho lập trình viên có thể communicate với nhau.
Feb 23, 2015·11 years ago
|Software Engineering|
Design Patterns
|Edit|

Related Posts

So sánh mô hình Waterfall, mô hình mẫu, mô hình xoắn ốc

Phân tích so sánh chi tiết ba mô hình phát triển phần mềm kinh điển - Waterfall, Prototype, và Spiral - về ưu điểm, nhược điểm và ứng dụng

Mar 15, 2015·11 years ago
Read more

Mô hình thác nước (Waterfall Model)

Mô hình thác nước là một mô hình của quy trình phát triển phần mềm, trong đó quy trình phát triển trông giống như một dòng chảy, với các pha được thực hiện theo trật tự nghiêm ngặt và không có sự quay lui hay nhảy vượt pha là: phân tích yêu cầu, thiết kế, triển khai thực hiện, kiểm thử, liên kết và bảo trì.

Feb 24, 2015·11 years ago
Read more

Design Patterns - hệ thống 23 mẫu Design Patterns

Hệ thống các mẫu design pattern hiện có 23 mẫu được định nghĩa bởi Gang of Four - một kiến thức cơ bản và không lỗi thời trong công nghệ phần mềm

Feb 23, 2015·11 years ago
Read more

Quy trình phát triển phần mềm - mô hình xoắn ốc (The Boehm's spiral model)

Mô hình xoắn ốc có thể được xem là sự kết hợp giữa mô hình thác nước và mô hình mẫu và đồng thời thêm một thành phần mới - phân tích rủi ro.

Feb 24, 2015·11 years ago
Read more
On this page
  • Tại sao phải sử dụng Design Patterns?
  • Khi nào nên sử dụng Design pattern?
  • Phân loại Design Patterns
  • Để học Design Patterns cần có gì?
  • Kết
On this page
  • Tại sao phải sử dụng Design Patterns?
  • Khi nào nên sử dụng Design pattern?
  • Phân loại Design Patterns
  • Để học Design Patterns cần có gì?
  • Kết