Toidicode.com

Toidicode.com

BASIC TO ADVANCE

Bài 1: Designe patterns là gì?

Trong thế giới lập trình của chúng ta, luôn tồn tại một khái niệm bất hủ đó là design patterns. Khái niệm này được nhắc đến rất nhiều và nó có thể coi như một nguyên tắc không thể thiếu trong các framework hay các dự án lớn. Vậy design pattern là cái quái gì mà nghe có vẻ bố tướng vậy? Bài này chúng ta sẽ cùng giải quyết vấn đề đó!

1, Design Patterns là gì?

-Design patterns là một kỹ thuật trong lập trình hướng đối tượng, được các nhà nghiên cứu đúc kết và tạo ra các mẫu thiết kế chuẩn. Và design pattern không phải là một ngôn ngữ lập trình cụ thể nào cả, mà nó có thể sự dụng được trong hầu hết các ngôn lập trình có hỗ trợ OOP hiện nay.

2, Tại sao nên sử dụng design patterns?

-Design pattern giúp cho dự án của chúng ta dễ bảo trì, nâng cấp và mở rộng.

-Hơn nữa do design pattern đã được các nhà nghiên cứu đúc kết ra nên khi sử dụng design pattern thì chúng ta sẽ hạn chế được các lỗi tiềm ẩn.

-Và cuối cùng là khi sử dụng design pattern thì sẽ giúp code của chúng ta sẽ dễ đọc hơn. Điều này rất có lợi khi làm việc nhóm.

3, Cần gì để học design patterns.

-Điều đầu tiên mình muốn nói là design pattern không dành cho nhưng bạn mới bắt đầu tìm hiểu về lập trình.

-Muốn tìm hiểu và học được design pattern thì bạn phải nắm chắc được kiến thức oop đặc biệt là về abstract class,interface và static.

Như thế là đủ rồi. 

4, Các loại design patterns.

-Về cơ bản thì design pattern sẽ được chia làm 3 dạng chính và mỗi dạng chính và có tổng cộng 32 mẫu design:

  • Creational Pattern ( nhóm khởi tạo): Nhóm này sẽ giúp bạn rất nhiều trong việc khởi tạo đối tượng, mà bạn khó có thể nhận ra (nó sẽ không dùng từ khóa new như bình thường). Nhóm này gồm 9 mẫu design là:
    • Abstract Factory.
    • Builder.
    • Factory Method.
    • Multiton.
    • Pool.
    • Prototype.
    • Simple Factory.
    • Singleton.
    • Static Factory.
  • Structural (nhóm cấu trúc): Nhóm này sẽ giúp chúng ta thiết lập, định nghĩa quan hệ giữa các đối tượng. Nhóm này gồm có 11 mẫu design là:
    • Adapter/ Wrapper.
    • Bridge.
    • Composite.
    • Data Mapper.
    • Decorator.
    • Dependency Injection.
    • Facade.
    • Fluent Interface.
    • Flyweight.
    • Registry.
    • Proxy
  • Behavioral patterns (nhóm ứng xử): Nhóm này sẽ tập trung thực hiện các hành vi của đối tượng. Gồm 12 mẫu design là:
    • Chain Of Responsibilities.
    • Command.
    • Iterator.
    • Mediator.
    • Memento.
    • Null Object.
    • Observer.
    • Specification.
    • State.
    • Strategy.
    • Template Method.
    • Visitor.

-Ngoài ra thì trong thời gian gần đây đã xuất hiện thêm 4 mẫu design nữa đó là:

  • 1.4.1 Delegation.
  • Service Locator.
  • Repository.
  • Entity-Attribute-Value (EAV).

5, Tài liệu tham khảo.

-Ở đây mình sẽ liệu kê ra 5 cuốn sách hay nhất về design patterns cho các bạn tham khảo:

  • Design Patterns: Elements of Reusable Object-Oriented Software.

  • Head First Design Patterns.

  • Pattern Hatching: Design Patterns Applied.

  • Refactoring to Patterns.

  • Patterns of Enterprise Application Architecture.

-Ngoài ra thì bạn có thể tham khảo series design patterns của tôi đi code chấm com(toidicode.com).

6, Lời kết.

-Qua bài này mình hi vọng mọi người có thể hiểu hơn về design pattern và ưu điểm của nó. Bài tiếp theo chúng ta sẽ đi vào tìm hiểu từng mẫu design....

 

Đăng ký nhận tin.

Chúng tôi chỉ gửi tối đa 2 lần trên 1 tháng. Tuyên bố không spam mail!

Vũ Thanh Tài

About author
The best way to learn is to share
Xem tất cả bài đăng

6 Comments

9 + 11 + 12 = 23 ??

5h3q3

7 năm trước

Hay, cảm ơn anh

l40ng

7 năm trước

5 + 9 + 17 = ??

3ncpd

7 năm trước

Hay

l40ng

7 năm trước

- không cần cứ phải ngôn ngữ hỗ trợ OOP thì mới dùng được Design pattern, trong C ( không phai OOP ) vẫn có thể sử dụng được.

- Design pattern quả thực không nên học đối với người mới học lập trình, vì nó là cách để viết code cho tối ưu chứ không phải viết code cho đúng logic, những người ít hoặc chưa có kinh nghiệm thì chưa nên học nó, vì theo mình lúc đó trình độ chưa đủ để có thể tiêu hóa được nó, co học xong cũng quên ngay

Nguyen Dinh Cuoi

7 năm trước

Cám ơn bạn đã chia sẻ nhưng có vẻ hơi sơ sài và khó hiểu quá! 

VNCoupon

6 năm trước

Bình luận

Captcha