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.