Học cách design hệ thống hướng đối tượng maintainable, flexible và scalable. Master CRC cards, GRASP patterns, coupling và cohesion, responsibility-driven design, cùng các design heuristics thực tế với ví dụ TypeScript, Python và Java.
Nắm vững Observer, Command và State behavioral design patterns với ví dụ TypeScript, Python và Java. Xây dựng event-driven system, implement undo/redo và thiết kế state machine để hoàn thành series OOP & Design Patterns.
Nắm vững Strategy và Template Method behavioral design patterns với ví dụ TypeScript, Python và Java. Học cách swap algorithm lúc runtime, loại bỏ conditional phức tạp, và định nghĩa algorithm skeleton tái sử dụng được với hook methods.
Nắm vững Decorator và Proxy structural design pattern với ví dụ TypeScript, Python và Java. Học cách mở rộng hành vi đối tượng linh hoạt, triển khai lazy loading, caching proxy và phân biệt khi nào dùng pattern nào.
Hiểu rõ Dependency Injection và Inversion of Control từ bài viết kinh điển của Martin Fowler. Tìm hiểu Constructor, Setter, Interface Injection với ví dụ TypeScript thực tế, và so sánh DI với Service Locator.
Nắm vững Adapter và Facade structural design pattern với ví dụ TypeScript, Python và Java. Học cách tích hợp interface không tương thích, đơn giản hóa hệ thống phức tạp và chọn đúng pattern cho từng tình huống.
Nắm vững Prototype design pattern với ví dụ TypeScript, Python và Java. Tìm hiểu shallow vs deep copy, prototype registry và khi nào nên clone đối tượng thay vì tạo mới từ đầu.
Thành thạo Builder design pattern với ví dụ thực tế bằng TypeScript, Python, và Java. Học cách xây dựng đối tượng phức tạp từng bước, triển khai fluent interface, và tránh telescoping constructor anti-pattern.
Thành thạo Factory Method và Abstract Factory design pattern với ví dụ thực tế bằng TypeScript, Python, và Java. Tìm hiểu khi nào dùng mỗi pattern, sự khác biệt giữa chúng, và các use case thực tế trong UI toolkit, ứng dụng đa nền tảng, và hệ thống plugin.
Nắm vững Singleton design pattern với triển khai thực tế trong TypeScript, Python và Java. Tìm hiểu eager vs lazy initialization, thread safety, cuộc tranh luận anti-pattern, thách thức testing, và các giải pháp thay thế hiện đại như dependency injection.