Design Pattern

- 4 mins

Summary

Giới thiệu tổng quan về design pattern.

Outline


Khái niệm

Nếu bạn đang gặp rắc rối hoặc cần tìm hướng giải quyết cho việc thiết kế ứng dụng của mình thì design pattern có thể là thứ mà bạn đang tìm kiếm. Nói cách khác, design pattern là những thiết kế phổ biến cho những vấn đề trong thiết kế phần mềm. Chúng được coi như những template của việc thiết kế phần mềm và bạn có thể tùy chỉnh lại để phù hợp với yêu cầu của riêng sản phẩm khi bắt tay vào code.

Pattern không phải là những thuật toán, thư viện được dựng sẵn. Pattern được thiết kế ở level cao hơn để định hướng thiết kế cho các ứng dụng. Một pattern được áp dụng vào nhưng project khác nhau thì code của chúng cũng khác nhau. Khi áp dụng pattern, bạn biết được kết quả đầu ra mình mong muốn và các chức năng cần có nhưng việc xây dựng các chức năng, sử dụng thuật toán, công nghệ nào phụ thuộc hoàn toàn vào bạn :)


Ví dụ

Giả sử, bạn đang phát triển một ứng dụng trò chơi giả lập làm một con vịt, trong đó, người chơi có thể chọn một loài vịt bất kì để thử các hành động khác nhau của một con vịt như kêu ‘quack, quack’, hay vỗ cánh. Bạn nhanh chóng thiết kế cho ứng dụng của mình gồm các lớp mô tả các hành động của con vịt

![Funnny duck application][/assets/image/duck-pattern.png]
<figcaption class="caption">Funny duck application</figcaption>

Các thành phần của pattern

Hầu hết các pattern được định nghĩa theo khuôn mẫu nhất định để ta có thể tái sử dụng trong nhiều yêu cầu khác nhau, thông thường chúng gồm các phần:


Phân loại pattern

Có nhiều design pattern được sử dụng phổ biến tùy theo từng mục đích. Ta có thể phân loại dựa vào mức độ phức tạp của pattern, độ chi tiết trong thiết kế, khả năng mở rộng cho toàn bộ hệ thống.

Dựa vào độ phức tạp và chi tiết của thiết kế, ta có thể chia các pattern thành 2 loại:

Cách phân loại ở trên có vẻ khá chung, gây khó khăn cho những người mới bắt đầu khi cần tìm một giải pháp khi viết một ứng dụng. Một cách phân loại pattern khác dựa vào mục đích sử dụng của pattern sẽ giúp cho dev có thể nắm được cách dùng và chọn ra pattern phù hợp với nhu cầu. Theo cách này, các pattern được phân vào 3 loại:

Tổng kết

Trong bài viết này mình đã tóm tắt qua một số khái niệm liên quan đến design pattern. Nếu bạn từng gặp rắc rối khi ứng dụng có thêm những yêu cầu mới từ khách hàng, hay việc chưa có kinh nghiệm dẫn đến đống code ngày càng trở nên lộn xộn và khó maintain thì design pattern có thể là thứ bạn đang cần. Các bài viết sau mình sẽ viết chi tiết về từng loại pattern và một số pattern tiêu biểu cho từng loại.

HN, 21/11/2020, miss you !

Reference Design Pattern Guru.

comments powered by Disqus
rss facebook twitter github gitlab youtube mail spotify lastfm instagram linkedin google google-plus pinterest medium vimeo stackoverflow reddit quora quora