Tổng quan về Design Pattern

Design Pattern là gì?

Design pattern có thể hiểu đơn giản là các mẫu thiết kế trong lập trình được tạo sẵn cho những trường hợp thường gặp. Những mẫu thiết kế này là sản phẩm đúc kết qua nhiều đời lập trình viên. Vì thế mà các bạn cứ yên tâm mang ra áp dụng khi gặp trường hợp tương tự ;)

Nguồn gốc của design pattern

Tư tưởng về pattern được đề cập đầu tiên bởi Christopher Alexander trong cuốn A Pattern Language: Towns, Buildings, Construction. Từ ý tưởng đó các mẫu Design pattern lần đầu tiên được biết đến với cuốn sách mang tên Design Patterns - Elements of Reusable Object-Oriented Software xuất bản năm 1994 bởi 4 tác giả Erich Gamma, Richard Helm, Ralph Johnson và John Vlissides hay còn được biết với cái tên Gang of Four (GOF). Cuốn sách nêu ra 23 design patterns thường được sử dụng trong lập trình hướng đối tượng.

Có những loại design pattern nào?

Trong cuốn sách mình vừa nhắc đến ở trên thì 4 tác giả giới thiệu 3 loại design pattern bao gồm

Khởi tạo (Creational)

Đây là những design patterns giúp bạn khởi tạo đối tượng mà vẫn ẩn đi những logic của việc khởi tạo đối tượng đó. Việc này giúp cho lập trình được linh động hơn và dễ dàng quyết định được đối tượng nào được khởi tạo trong những tình huống nào. Nghe mông lung vậy thôi chứ không phải dùng if else thuần đâu nhé :D

  1. Singleton
  2. Factory Method
  3. Abstract Factory
  4. Builder
  5. Prototype

Cấu trúc (Structural)

Nhóm này tập trung vào việc tổ chức lớp và đối tượng. Tính năng kế thừa được kết hợp với tính trừu tượng một cách hài hòa để chương trình của bạn có thể dễ dàng mở rộng cho những tính năng mới mà không phải đập đi xây lại

  1. Adapter
  2. Bridge
  3. Composite
  4. Decorator
  5. Facade
  6. Flyweight
  7. Proxy

Hành vi (Behavioral)

Nhóm này tập trung vào thuật toán và việc phân bổ nhiệm vụ giữa các đối tượng

  1. Chain of responsibility
  2. Command
  3. Interpreter
  4. Iterator
  5. Mediator
  6. Memento
  7. Observer
  8. State
  9. Strategy
  10. Template method
  11. Visitor

Mối quan hệ giữa các design patterns

Nguồn:

Bài viết liên quan

Đây là bài viết cũ nhất


EmoticonEmoticon