Khái niệm, định nghĩa Design patterns là gì?

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.

Phân loại Design patterns:

– Cơ bản thì design pattern sẽ được chia làm 3 dạng chính và mỗi dạng chính và có tổng cộng 32 mẫu design:

  • Creational Pattern ( nhóm khởi tạo): Nhóm này sẽ giúp bạn rất nhiều trong việc khởi tạo đối tượng, mà bạn khó có thể nhận ra (nó sẽ không dùng từ khóa new như bình thường). Nhóm này gồm 9 mẫu design là:
    • Abstract Factory.
    • Builder.
    • Factory Method.
    • Multiton.
    • Pool.
    • Prototype.
    • Simple Factory.
    • Singleton.
    • Static Factory.
  • Structural (nhóm cấu trúc): Nhóm này sẽ giúp chúng ta thiết lập, định nghĩa quan hệ giữa các đối tượng. Nhóm này gồm có 11 mẫu design là:
    • Adapter/ Wrapper.
    • Bridge.
    • Composite.
    • Data Mapper.
    • Decorator.
    • Dependency Injection.
    • Facade.
    • Fluent Interface.
    • Flyweight.
    • Registry.
    • Proxy
  • Behavioral patterns (nhóm ứng xử): Nhóm này sẽ tập trung thực hiện các hành vi của đối tượng. Gồm 12 mẫu design là:
    • Chain Of Responsibilities.
    • Command.
    • Iterator.
    • Mediator.
    • Memento.
    • Null Object.
    • Observer.
    • Specification.
    • State.
    • Strategy.
    • Template Method.
    • Visitor.

– Ngoài ra thì trong thời gian gần đây đã xuất hiện thêm 4 mẫu design nữa đó là:

  • 1.4.1 Delegation.
  • Service Locator.
  • Repository.
  • Entity-Attribute-Value (EAV).