Tìm hiểu về Design Pattern – Code C++

 

Chào mừng các bạn đến với blog Phát Triển Phần Mềm 123Az

Và hôm nay chúng ta sẽ cùng nghiên cứu chủ đề: Tìm hiểu về Design Pattern.

Và bài đầu tiên này, chúng ta cùng tìm hiểu về Design Pattern trong kỹ thuật lập trình.

1.  Khi nào thì bắt đầu học Design Pattern.

+ Nếu bạn là mới bắt đầu bước vào học lập trình, thì các bạn hãy học hết toàn bộ chủ đề cơ bản về lập trình.

+ Sau đó phải nắm thật chắc kiến thức về lập trình hướng đối tượng, kế thừa, đa hình, các khái niệm như là lớp cơ sở trừu tưởng, lớp cơ sở ảo…

+ Sau giai đoạn tối ưu code cơ bản, và bắt đầu chuyển sang giai đoạn tối ưu code cấp cao.

+ Khi bắt đầu thực hiện các xây dựng các ứng dụng phần mềm có tính chất: Quy mô, Lâu Dài, Mở rộng và phát triển theo các phiên bản.

Sau khi bạn đã vượt qua được 4 bước ở trên. Thì bắt đầu nên tìm hiểu về design pattern.

Nhận định cá nhân tôi về Design Pattern.

Khi lần đầu tiên nghe đến khái niệm Design Pattern => Thực sự tôi chẳng hiểu gì.

Được người đi trước dạy xong cũng chẳng hiểu gì.

Dịch ra tiếng việt nghĩa là: Khuôn mẫu thiết kế, những cũng chẳng hiểu gì.

=> Xác định rằng, Design Patter là một khái niệm khó hiểu, kỹ thuật trừu tượng. Kiến thức phức tạp.

 

2.  Dẫn dắt vấn đề.

Tôi sẽ dùng bóng đá làm ví dụ minh họa cho Design Pattern trong lập trình. Giả sử một đội bóng đá đi thi đấu 😀 .

+ kỹ thuật cơ bản: sút, truyền, đánh đầu, đảo bóng <=>  kỹ thuật cơ bản trong lập trình.

+ Trang phục thi, luật lệ thi đấu, rồi quy tắc ứng xử <=> coding style trong lập trình

+ Các hệ thống truyền hình quay phát, lưu giữ , bình luận <=> Hệ thống quản lý code.

+ Kinh nghiệm phối hợp, tránh phạt góc, chắt chiu cơ hội  <=>  Kỹ thuật tối ưu hóa trong code để chương trình tốt hơn.

+ Các vai trò cầu thủ trên như: Hậu vệ,  thủ môn, tiền đạo <=>kỹ thuật lập trình module hóa, hoặc kỹ thuật lập trình cấu trúc.

Cuối cùng một điều quan  nữa trong một đội bóng đó là Sơ đồ chiến lược.

Nếu không có sơ đồ chiến lược, các bạn sẽ tưởng tưởng như sau:

+ Không biết nên sử dụng bao nhiêu hậu vệ là đủ, bao nhiêu tiền đạo, bao nhiêu tiền vệ, có cần trung vệ không, có cần tiền đạo cắm không.

+ Với đối thủ thì nên chơi công hay chơi phòng ngự, hay chơi song song….

+ Nên chơi bóng bổng hay bóng sệt…..

Và Trải qua hàng chục năm người ta đúc kết và xây dựng nên được một số lượng các sơ đồ chiến thuật phù hợp cho bóng đá.

Ví dụ mô hình; 1 4 4 1 –  1 4 5 1 – 1 5 3 2…. Và các mô hình này đã được chứng minh là nó hiệu quả nhất, phù hợp nhất thường được chọn cho 1 trân đấu.

Từ đó liên hệ sang ngành công nghệ phần mềm. CŨNG NHƯ VẬY

Trải qua nhiêu năm nghiên cứu các nhà khoa học máy tính, công nghệ phần mềm họ đã xây dựng được các khuôn mẫu lập trình tốt nhất để áp dụng.

Khuôn mẫu lập trình sẽ giúp các lập trình viên lựa chọn đề phù hợp với yêu cầu bài toán đặt ra.

Họ sẽ biết cách bố trí các lớp đối tượng ra sao. dùng bao nhiêu lớp trừu tượng, bao nhiêu lớp kế thừa, bao nhiêu lớp giao tiếp, kết nối. Biết cách dùng các quan hệ phù hợp nhất các các lớp đối tượng.

Và các khuôn mẫu đó được gọi là Design Pattern.

Bù lại: Cảm hứng bóng đá mang lại thì gấp nhiều lần nghề lập trình 😀

Ok. Nếu bạn đọc kỹ minh họa trên, mình nghĩ bạn sẽ hiểu được Design Pattern có ý nghĩa là gì.

3.  Vai trò của nó.

+ Design Pattern nói ngắn gọn là: Các khuôn mẫu thiết kế.

Design Pattern được sử dụng nhằm giải quyết vấn đề:

+ Tối ưu hóa sản phẩm, dễ bảo trì sản phẩm, dễ nâng cấp sản phẩm, và đặc biệt là việc mở rộng sản phẩm.

+ Được coi như là mô hình cơ bản của dự án phần mềm, bộ khung của việc thiết kế.

+ Nhìn vào sơ đồ Design Pattern được áp dụng cho một dự án.

Một kỹ sư phần mềm sẽ dễ hình dung được vai trò các lớp, mối quan hệ giữa các thành phần trong project.

+ Một dự án có thể sử dụng một mẫu Design Pattern cho toàn bộ mô hình tổng quan, và các Design Pattern khác cho các phần chức năng nhỏ.

Đối với Design Pattern tổng quan, nó chỉ cần thực hiện một lần, và sau đó là triển khai mở rộng.

Nhưng nó lại bước thực hiện đầu tiên khi bắt đầu lên kết hoạch thiết kế phần mềm.

+ Do đó vai trò của nó khá quan trọng.

Nếu định hướng sai việc trong sử dụng mô hình DP sẽ vô tình làm dự án đi vào ngõ cụt.

Không thể mở rộng, nâng cấp, và vô tình sẽ phải đập đi làm lại theo mô hình mới.

4.  Phân loại Design Pattern

+ Baom gồm 23 loại Design Pattern cơ bản và chúng được chia thành 3 nhóm chính.

a. Nhóm Khởi Tạo: Creational Pattern.

+ Mẫu này giải quyết vấn đề khởi tạo các đối tượng, nó có các thủ thuật giúp việc khởi tạo nhanh nhất, bảo mật nhất.

b. Nhóm Cấu Trúc: Structural Pattern.

+ Mẫu này giúp bạn tạo dựng các mối quan hệ cho các đối tượng một cách phù hợp nhất. Ông A nằm trong ông B hay ông A truyền vào cho ông B.

c. Nhóm Hành Vi: Behavioral Pattern.

+ Nhóm này giải quyết các vấn đề về hình vi cho đối tượng.

Ok. Và đến đây tôi nghĩ các bạn sẽ chưa thực sự hiểu rõ ràng, mà mới chỉ hiểu rằng DP nó có vai trò quan trọng như sơ đồ chiến thuật trong một đội bóng.

Hãy đến với những bài chi tiết dưới đây để tìm hiểu lần lượt cụ thể về 23 mẫu design pattern.

 

Pass Pham

 

 

 

 

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.