Design pattern là gì? Tại sao nên sử dụng Design pattern?

09 tháng 12, 2021 – 227 lượt xem

Chắc hẳn cụm từ “Design pattern” không còn quá xa lạ đối với giới lập trình. Tuy nhiên, để sử dụng thành thạo, linh hoạt được thì chắc hẳn chúng ta cần tìm hiểu nhiều khía cạnh xung quanh cũng như hiểu rõ cơ bản về nó.

Ở bài viết này, mình tập trung vào những khái niệm cơ bản của design pattern để giúp các bạn còn đang mập mờ, chưa hiểu rõ về design pattern có cái nhìn rõ ràng hơn.

Design pattern là gì?
Trước tiên, để tìm hiểu những khía cạnh xung quanh Design Pattern thì hãy cùng nhìn lại định nghĩa “Design pattern” là gì?

  • Design pattern(mẫu thiết kế) là một giải pháp chung để giải quyết các vấn đề phổ biến khi thiết kế phần mềm trong lập trình hướng đối tượng OOP.
  • Design Pattern là mẫu chuẩn tối ưu nhất, có thể áp dụng để giải quyết không chỉ một vấn đề mà nhiều vấn đề có tính chất tương tự nhau, lặp đi lặp lại nhiều lần trong lập trình.
  • Design Pattern không dành riêng cho một ngôn ngữ lập trình cụ thể nào. Nó có thể được áp dụng trong hầu hết các ngôn ngữ lập trình OOP như: PHP, C#, Java, Python và nhiều ngôn ngữ khác.
  • Design pattern có thể giúp thiết kế của chúng ta linh hoạt, dễ dàng thay đổi và bảo trì hơn.

Design pattern có tác dụng gì?

  • Tăng tốc độ phát triển phần mềm

    Design Pattern đưa ra các mô hình test và mô hình phát triển đã qua kiểm nghiệm giúp developer có được hướng giải quyết nhanh chóng và hiệu quả.

  • Giúp code dễ đọc hơn

    Việc sử dụng Design Pattern giúp cho code dễ đọc hơn, developer khi làm việc nhóm cũng giao tiếp thuận lợi hơn vì có được tiếng nói chung.

Ngoài những tác dụng trên, Design pattern còn có nhiều lợi ích khác nhau:

  • Các mẫu thiết kế đã được xác định và cung cấp cách tiếp cận chuẩn theo ngành để giải quyết vấn đề lặp lại, vì vậy sẽ tiết kiệm được thời gian nếu chúng ta sử dụng mẫu thiết kế hợp lý.
  • Sử dụng các mẫu thiết kế thúc đẩy khả năng tái sử dụng dẫn đến phát triển phần mềm nhanh hơn. Nó giúp giảm tổng chi phí của sản phẩm phần mềm.
  • Khi áp dụng 1 mẫu thiết kế, nó làm cho code dễ hiểu và gỡ lỗi.

Các loại design pattern

design pattern

1. Creational Pattern

Creational Pattern(tạo dựng): cung cấp giải pháp tạo một đối tượng theo cách tốt nhất phù hợp cho từng tính huống, bao gồm:

  • Factory Method
  • Abstract Factory
  • Builder
  • Prototype
  • Singleton

2. Structural Pattern

Structural Pattern (cấu trúc): cung cấp các giải pháp tạo ra cấu trúc của một lớp (class), ví dụ dùng thừa kế để tạo một class lớn từ các class bé, bao gồm:

  • Adapter
  • Bridge
  • Composite
  • Decorator
  • Facade
  • Flyweight
  • Proxy

3. Behavioral Pattern

Behavioral Pattern (hành vi): cung cấp các giải pháp cho sự tương tác giữa các class, làm sao để lose couple, high cohesion, tăng tính mở rộng. Bao gồm:

  • Interpreter
  • Template Method
  • Chain of Responsibility
  • Command
  • Iterator
  • Mediator
  • Memento
  • Observer
  • State
  • Strategy
  • Visitor