Ứng dụng của design pattern trong lập trình là gì?

Chào mọi người trong room,
1.Mình muốn hỏi ứng dụng của design pattern trong lập trình là gì?
2.Hiện tại có 23 mẫu thì có cần học hết 23 mẫu không?
3.Các mẫu này có ứng dụng nhiều trong lập trình web không?

1 Like
  1. Web dùng MVC.
    Tất cả các freamwork trên web đều dùng mô hình này

  2. Nếu bạn thuộc nghiên cứu có thể nghiên cứu hết. Còn không thì chỉ cần coi một số mô hình thôi.

  3. Ứng dụng Design pattern trong lập trình là giúp phân tích thiết kế hệ thống từ yêu cầu của khách hàng.
    Sắp xếp code, code dễ dàng.

3 Likes

MVC là model nhé. Không phải design pattern.

Design pattern là tập hợp các mẫu thiết kế lập trình dùng để giải quyết các vấn đề thường gặp trong lập trình để nhằm tăng năng suất, giúp code chất lượn hơn, giảm tiêu tốn tài nguyên trong quá trình maintain nói chung là có nhiều cái lợi. Cần phân biệt khái niệm này với Template là triển khai cụ thể tương ứng với từng lại ngôn ngữ hoặc từng loại trường hợp trong khi Design pattern là thiết kế mang tính tổng quát.

Bạn có thể học hết, học một vài hoặc không học. Tất nhiên biết nhiều thì đàm phán lương nhiều, code tốt hơn nhưng nó không trực tiếp giúp bạn kiếm tiền mà chỉ là phần bonus thôi. Vậy nên học hay không là tùy bạn cái này không tư vấn được.

Để nắm về cái này khá mệt mõi… Mình tập trung để ý đến nó từ năm thứ hai đại học thế nhưng khi bắt đầu vào dự án thật mới vỡ ra nhiều thứ và đến giờ thì vẫn chưa nắm được hết. Chia sẻ về kinh nghiệm thì mình học cái này theo phương pháp top-down.

  1. Học tất cả các design pattern ở mức khái niệm. Biết có bao nhiêu cái, tên nó là gì, phân loại nó và nắm được mơ hồ khi nào cần dùng.
  2. Đọc code người khác và tái cấu trúc lại code của người ta bằng cách tìm trong số tất cả nhưng pattern mình biết có cái nào hợp lí không. Sau khi làm xong thì tạo cho mình một cái template code.
  3. Áp dụng vào giải quyết các vấn đề của dự án thật.

Chốt hạ. Design Pattern cũng chỉ là một loại Tip and Trick trong giới phàn mềm được đúc kết lại. Tiếc rằng nó quá chung chung. Nếu không trải nghiệm thì không thể nào học được hoặc có học cũng thấy vô ích. Vậy nên khuyến khích là học để làm ra sản phẩm đã. Có sản phẩm rồi mỗi tuần đặt ra khoảng 2 tiếng cho cái nội dung này thì là phù hợp

9 Likes

Quên mất câu hỏi cuối. Cứ lập trình là dùng nhé.

  • Kết nối với database mà không dùng Singleton thì hỏng. Chơi với cache cũng vậy.
  • Render view thì chắc chắn phải gặp anh Factory rồi.
  • Mô hình MVC không có adapter làm kĩ thuật trung gian thì càng dựng càng rối…
    … Blad blad…
10 Likes

Mình đang tìm hiểu design pattern. Mình đọc tài liệu Head first Design Patterns có được không?

1 Like

Đang chuẩn bị làm đồ án về cái này :slight_smile: đọc trên mạng hiểu sơ sơ, đọc Head first thì dài quá. Không biết phải chuẩn bị gì cho bài thuyết trình đây

1 Like

cuốn đó nghe đồn là dễ đọc.
Nên em cứa đọc đi.

Anh có source code cho mấy ví dụ trên không, cho em xin với ạ :grinning:

1 Like

Anh ơi. Anh có thể nêu 1 số trường hợp thực tế nào nên xài pattern nào không? Chứ em còn mơ hồ wa

1 Like

Em hiện đang làm gì?

E đang làm web và học unity anh ạ

Thế cứ code một vài năm rồi thực hiện refractor một vài dự án rồi em sẽ vỡ ra thôi :smiley:

1 Like

Ví Dụ Bây giờ em code một trang web ASP.NET MVC thì có thể dùng design pattern nào?
Phân chia solution, project, folder như thế nào nhỉ?
Mù mờ design pattern quá!

1 Like

Cái này thì khó nói lắm. Design pattern là các kĩ thuật để sử lý các tình huống thông thường trong lập trình. Nên cũng cần phải case by case mới nói rõ được. Tùy vào trường hợp cụ thể để lựa chọn.

1 Like

design patern nó thuộc về thiết kế hệ thống rồi … nên có 1 cái nhìn tổng quan mới sử dụng thích hợp được , phải có kinh nghiệm nữa chứ dùng nhiều code nó rối rắm lắm …

1 Like

Khi nào bạn cảm thấy không hài lòng về tính mở mộng, thay thế, lặp lại/tái sử dụng của code của mình, lúc đó bạn sẽ nghĩ đến việc design pattern nào sẽ giải quyết điều đó cho mình.

1 số mẫu phổ thông dễ sử dụng như: singleton, factory, adapter

Nếu bạn dùng Singleton với Connection pool thì tôi đồng ý, còn đối với Connection thì đó là bad design.

1 Like

MVC là architechture pattern cậu ạ :smile:
khác với design pattern đấy. Vậy nên, link cậu đưa, thực ra, sử dụng thuật ngữ sai rồi :smile:

4 Likes

Thật khi đọc về design pattern, tôi cảm thấy hơi mơ hồ, vì có thể mình viết code nhiều, và có thể dùng design pattern trong ấy, nhưng không biết nó là design pattern, chỉ biết mấy cái package mà mình install nó cũng được xem là design pattern :)).

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?