Design Pattern – Kim chỉ nam cho Developer giỏi

hovanban

Well-known member
Design Pattern 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. Muốn trở thành một developer giỏi, được công nhận về năng lực thì ít nhất, bạn cũng nên am hiểu một vài Design Pattern để “lận lưng”.

Design Pattern là gì?
Design Pattern (hay còn gọi là 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.
Nói một cách dễ hiểu: khi gặp vấn đề X, developer thứ nhất sẽ nghĩ ra phương án Y để giải quyết; trong khi developer thứ hai lại nghĩ ra phương án Z hoàn toàn khác… Nhưng cả phương án Y và Z đều chưa thực sự tối ưu.
Với sự đúc kết và công nhận từ nhiều nhà nghiên cứu, 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.

Tuy nhiên, nếu bạn là “tay mơ” – người mới tìm hiểu về lập trình thì Design Pattern không dành cho bạn. Muốn học Design Pattern, bạn cần phải có kiến thức vững chắc về lập trình OOP, cụ thể là:
  • 4 đặc tính: Trừu tượng, Đóng gói, Đa hình, Kế thừa
  • 3 khái niệm: abstract class, interface và static
Hiểu và áp dụng được các kiến thức kể trên là rất cần thiết để học tốt Design Pattern và giúp bản thân đạt trình độ mới cao hơn.

Vì sao Developer nên học và sử dụng Design Pattern?
1. Tăng tốc độ phát triển phần mềm

Loại bỏ thời gian thừa của developer khi suy nghĩ giải pháp cho một vấn đề, 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ả.
Nếu như một người bình thường có xu hướng tìm kiếm Google mỗi khi có vấn đề thắc mắc thì tương tự, một developer cũng sẽ tìm kiếm Design Pattern để tìm câu trả lời cho vấn đề gặp phải.
2. Hạn chế lỗi tiềm ẩn

Sử dụng giải pháp đã được chứng minh và công nhận thì hẳn là sẽ giảm bớt rủi ro hơn là tự mình thử nghiệm giải pháp mới đúng không nào? Vậy nên bạn sẽ không còn lo lắng về các lỗi tiềm ẩn nữa.

3. Hỗ trợ tái sử dụng mã lệnh

Các mẫu thiết kế có thể được sử dụng hàng triệu lần mà không nảy sinh bất cứ vấn đề nào. Developer cũng dễ dàng mở rộng, nâng cấp và bảo trì để đáp ứng được các yêu cầu thay đổi liên tục của dự án.

4. 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.

Phân loại Design Pattern

Patterns (các mẫu có khả năng tái sử dụng) ban đầu là một loại mô hình trong kiến trúc, được khai phá bởi kiến trúc sư Christopher Alexander năm 1966.

Dựa trên nền tảng này, năm 1987, hai developer người Mĩ là Kent Beck và Ward Cunningham bắt đầu nghiên cứu về ý tưởng ứng dụng patterns trong lập trình. Nhưng mãi cho đến năm 1994, sau khi bộ tứ Gang of Four xuất bản cuốn sách “Design Patterns: Elements of Reusable Object-Oriented Software” thì Design Pattern mới thực sự trở nên phổ biến.

Bộ tứ nói trên là các tác giả: Erich Gamma, Richard Helm, Ralph Johnson và John Vlissides.

Theo như những gì được trình bày trong cuốn sách thì hệ thống Design Pattern có 23 mẫu, được phân chia thành 3 nhóm chính.

1. Creational Pattern

Creational Pattern (nhóm khởi tạo): tập hợp các giải pháp liên quan đến khởi tạo đối tượng.

Nhóm này gồm 5 mẫu thông dụng:
  • Factory Method
  • Abstract Factory
  • Builder
  • Prototype
  • Singleton
2. Structural Pattern

Structural Pattern (nhóm cấu trúc): tập hợp các giải pháp liên quan đến thiết lập kết cấu, liên hệ giữa các đối tượng.

Nhóm này gồm 7 mẫu thông dụng:
  • Adapter
  • Bridge
  • Composite
  • Decorator
  • Facade
  • Flyweight
  • Proxy
3. Behavioral Pattern

Behavioral Pattern (nhóm hành vi): tập hợp các giải pháp liên quan đến các hành vi của đối tượng và giao tiếp giữa các đối tượng khác nhau.
Nhóm này gồm 11 mẫu thông dụng:
  • Interpreter
  • Template Method
  • Chain of Responsibility
  • Command
  • Iterator
  • Mediator
  • Memento
  • Observer
  • State
  • Strategy
  • Visitor
CÔNG TY TNHH TƯ VẤN TRUYỀN THÔNG MINARA
ĐỊA CHỈ:
- 182 Trần Bình Trọng, P.3, Q.5, Tp.HCM
- 27 Đường số 16, Trung Tâm Hành Chính Dĩ An, Bình Dương.
Điện thoại: 097.777.1060
Email: info@minara.vn
Website: www.minara.vn
 
Chỉnh sửa lần cuối:
Bên trên