Nếu bạn thực sự nghiêm túc muốn đi theo con đường trở thành một Developer giỏi một trong những kiến thức bạn phải có chính là Design Patterns
- Design Patterns (mẫu thiết kế) là một kĩ thuật trong lập trình hướng đối tượng và được sử dụng thường xuyên trong các ngôn ngữ OOP như Java,C#,Kotlin... Nó cũng cấp cho ta các mẫu (Pattern) để giải quyết các vẫn đề thường gặp, tuy bạn có thể tự nghĩ ra nhưng nó có thể không phải là tối ưu. Design pattern sẽ giúp chúng ta giải quyết những vấn đề này được tối ưu nhất.
- Design Patterns không phụ thuộc vào ngôn ngữ nào cả bạn có thể áp dụng với phần lớn những ngôn ngữ lập trình hiện nay.
- Bạn nghiêm túc muốn trở thành một Dev giỏi thì không thể bỏ qua Design Pattern
- Tái sử dụng lại code và dễ mở rộng
- Là những giải pháp đã được tối ưu hóa và chúng ta có thể sử dụng tùy theo trường hợp mà không cần suy nghĩ.
- Đồng thời tăng tốc độ phát triển và testing cho các nhà phát triển
- Đương nhiên code sẽ trở nên dễ đọc và dễ hiểu kèm theo đó là dễ bảo trì nâng cấp về sau.
- Tiết kiệm thời gian làm việc với code của các dev khác.
- Trong cuốn sách Design Patterns – Elements of Reusable Object-Oriented Software - của 4 tác giả Erich Gamma, Richard Helm, Ralph Johnson và John Vlissides có 23 mẫu được định nghĩa bên trong và chia thành 3 nhóm.
- Bao gồm 5 mẫu : Factory Method, Abstract Factory, Builder, Prototype, Singleton.
- Cung cấp giải pháp giúp tạo ra object và che giấu logic tạo ra nó thay vì tạo một cách trực tiếp => giúp chương trình mềm dẻo hơn khi muốn tạo object nào và theo tình huống nào.
- Bao gồm 7 mẫu : Adapter, Bridge, Composite, Decorator, Facade, Flyweight và Proxy.
- Giúp ta thiết lập mối quan hệ giữa các đối tượng với nhau.
- Bao gồm 11 mẫu: Interpreter, Template Method, Chain of Responsibility, Command, Iterator, Mediator, Memento, Observer, State, Strategy và Visitor
- Cung cấp giải pháp để thực hiện các hành vi của đối tượng cũng như giữa các object với nhau.
- Lập trình hướng đối tượng cơ bản nhất : hiểu đối tượng là gì? thuộc tính, hàm ...
- 4 Đặc tính cơ bản nhất của OOP: Kế thừa, Đa hình, Trừu tượng, Đóng gói.
- Hiểu hai khái niệm về interface và abstract class, nắm được điểm giống và khác nhau giữa hai thứ này.
- Hi vọng rằng thông qua repo và những video mình thực hiện sẽ đem đến cho các bạn một cái nhìn tổng quan về Design Pattern, để có thể góp phần giúp bạn xây dựng những ứng dụng tuyệt vời dễ dàng mở rộng, code dễ đọc dễ hiểu
- Nếu các bạn yêu thích những bài viết như này các bạn hãy star repo cũng như theo dõi mình để có thể cập nhật những bài viết mới nhất của mình trong tương lai.
- Và cuối cùng
Code không chỉ cho máy đọc! Mà còn cả con người nữa hãy coi trọng người đọc vì
tương lai người đọc code của bạn rất có thể là chính bạn.
- Mình cũng đã làm một video giới thiệu các bạn có thể thấy ở đây