Mở đầu với Design Pattern

Mở đầu Là một lập trình viên, bạn biết rằng thật khó khăn để nhớ chi tiết những việc bạn đang thực hiện. Và khi không nắm bắt được tổng thể công việc, bạn có thể dễ dàng bỏ lỡ những việc quan trọng. Khi đó, mã nguồn bạn đang viết có thể vẫn chạy tốt, nhưng trừ khi bạn bao quát được bức tranh lớn hơn thì lúc đó mã nguồn bạn viết ra mới thực sự hoàn hảo.

Những vấn đề thực sự nghiêm trọng thường xuất hiện sau khi bạn đã chỉnh sửa mã nguồn ít nhất một lần. Các lập trình viên thường tự mình xử lý bằng cách viết lại mã nguồn và sửa các lỗi. Và trong môi trường công việc, phần lớn thời gian mà các lập trình viên bỏ ra là dành cho việc bảo trì, chỉnh sửa những công việc cũ thay vì tập trung vào phát triển những sản phẩm mới. Nếu bạn cũng như tôi, chúng ta thấy thật vô lý khi cứ phải làm, rồi sửa, làm lại, sửa tiếp… Giải pháp hợp lý nhất là chúng ta có thể đưa ra được một quy trình tổng quan cho việc thiết kế và bảo trì, có như vậy, bạn mới tránh được các rắc rối phát sinh khi môi trường ứng dụng thay đổi, hoặc ít nhất bạn cũng giúp cho việc bảo trì, chỉnh sữa dễ dàng hơn khi có phát sinh.

Đó cũng là lúc chúng ta bắt đầu quan tâm đến thuật ngữ: Design Patterns (hay còn gọi là các thiết kế mẫu) được giới thiệu từ khá lâu trên thế giới nhưng vẫn còn khá xa lạ với đa số lập trình viên trẻ. Design pattern là gì?

Design Pattern là tập hợp các giải pháp cho cho vấn đề phổ biến trong thiết kế các hệ thống máy tính. Các giải pháp này đã được công nhận là tài liệu có giá trị, các nhà phát triển có thể áp dụng chúng để giải quyết các vấn đề tương tự trong quá trình phát triển phần mềm.

Design-Pattern.jpg

Khi nào thì sử dụng Design pattern? Đó là khi bạn muốn: Giữ cho chương trình của mình thực sự đơn giản. Giảm 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ần làm gì để bắt đầu tìm hiểu về Design Pattern? Nắm chắc bốn đặc tính của OOP: Thừa kế, Đa hình, Trừu tượng, Bao đóng. Phân biệt được khái niệm interface và abstract (việc này rất 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 một 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 câp tư duy hoàn toàn theo OOP. Phân loại Design pattern: Design Pattern bao gồm 3 nhóm chính:

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

Ở các bài viết sau, tôi sẽ đi vào giải thích chi tiết cùng với mã nguồn đi kèm cho từng pattern được liệt kê ở trên. Các bạn cùng đón đọc nhé.


All Rights Reserved