Ưu đãi trong tuần: Nhập mã UD50 giảm 50k cho đơn từ 300k!
Trang chủ
Menu

Java Design Patterns & SOLID Design Principles

Java Design Patterns & Nguyên tắc Thiết kế SOLID

Java Design Patterns & Nguyên tắc Thiết kế SOLID

Hướng dẫn chuyên sâu về các mẫu thiết kế Gang of Four và nguyên tắc thiết kế SOLID sử dụng Java

4.5
(7,071 đánh giá)
59,096 học viên
Giảng viên
Coffee Powered Crew
Phụ đề Việt chất lượng cao Phụ đề tiếng Anh Bán chạy Đánh giá cao
50.000đ 1.589.000đ -97%
✓ Xem giỏ hàng và thanh toán
Bao gồm phụ đề tiếng Việt, tiếng Anh
17.0 giờ video
253 bài giảng
28 bài quiz
Truy cập vĩnh viễn
Học trên mọi thiết bị
Cập nhật: 18/03/2026

Bạn sẽ học được gì

Thành thạo 26 mẫu thiết kế, bao gồm 23 mẫu của Gang of Four và các mẫu thiết kế hiện đại mới
Nắm vững nguyên tắc thiết kế SOLID bằng Java qua các ví dụ thực hành cùng với các mẫu thiết kế
Hiểu trọn vẹn về các mẫu thiết kế Java và biết cách áp dụng chúng vào code Java
Phân biệt sự khác nhau giữa các mẫu thiết kế để lựa chọn giải pháp phù hợp cho vấn đề của bạn
Học qua ví dụ thực tế với dự án thực hành cho từng mẫu thiết kế
Trở thành Java Developer cao cấp bằng cách học về mẫu thiết kế và nguyên tắc SOLID
Hiểu và triển khai tất cả mẫu thiết kế Gang of Four: Creational, Structural & Behavioral bằng Java
Hiểu và triển khai các mẫu thiết kế Null Object, Object Pool bằng Java
Kiến thức toàn diện về hạn chế, so sánh, ứng dụng thực tế và ví dụ thực hành các mẫu thiết kế Java

Yêu cầu

Bạn cần có kiến thức cơ bản về Java và các khái niệm lập trình cơ bản
Để thực hành theo, bạn cần một trình soạn thảo code Java và máy tính để chạy nó

Đối tượng phù hợp

Khóa học này hữu ích cho mọi Java developer, dù kinh nghiệm thế nào, bạn cũng sẽ tìm thấy điều có thể áp dụng
Nếu bạn mới bắt đầu sự nghiệp, đây là khóa học bắt buộc. Bạn sẽ được hưởng lợi nhiều nhất
Nếu bạn đã làm việc với Java 1-4 năm, khóa học này sẽ giúp bạn tiến lên giai đoạn tiếp theo
Nếu bạn đang chuẩn bị phỏng vấn, đây là khóa học không thể bỏ qua
Nếu bạn là developer giàu kinh nghiệm, khóa học này giúp bạn nâng cao kỹ năng thiết kế phần mềm

Nội dung khóa học

32 phần • 253 bài giảng
1 Giới thiệu Phần
2 Nguyên tắc Trách nhiệm Đơn lẻ
3 Nguyên tắc Trách nhiệm Đơn lẻ - Thực hành
4 Nguyên tắc Đóng-Mở
5 Nguyên tắc Đóng-Mở - Thực hành
6 Nguyên tắc Thay thế Liskov
7 Nguyên tắc Thay thế Liskov - Thực hành
8 Nguyên tắc Phân tách Giao diện
9 Nguyên tắc Phân tách Giao diện - Thực hành
10 Nguyên tắc Đảo ngược Phụ thuộc
11 Nguyên tắc Đảo ngược Phụ thuộc - Thực hành
1 Mẫu Thiết kế - Giới thiệu
1 Mẫu Khởi tạo - Giới thiệu
1 Builder - Giới thiệu
2 Các bước Triển khai Builder
3 Builder - Ví dụ UML
4 Builder - Triển khai Phần 1
5 Builder - Triển khai Phần 2
6 Builder - Triển khai & Cân nhắc Thiết kế
7 Builder - Ví dụ
8 Builder - So sánh với Prototype
9 Builder - Điểm cần lưu ý
10 Builder - Tổng kết
1 Simple Factory - Giới thiệu
2 Simple Factory - Các bước Triển khai
3 Simple Factory - Triển khai
4 Simple Factory - Triển khai & Cân nhắc Thiết kế
5 Simple Factory - Ví dụ
6 Simple Factory - So sánh với Factory Method
7 Simple Factory - Điểm cần lưu ý
8 Simple Factory - Tổng kết
1 Factory Method - Giới thiệu
2 Factory Method - Các bước Triển khai
3 Factory Method - Ví dụ UML
4 Factory Method - Triển khai
5 Factory Method - Triển khai & Cân nhắc Thiết kế
6 Factory Method - Ví dụ
7 Factory Method - Điểm cần lưu ý
8 Factory Method - Tổng kết
1 Prototype - Giới thiệu
2 Prototype - Các bước Triển khai
3 Prototype - Ví dụ UML
4 Prototype - Triển khai
5 Prototype - Triển khai & Cân nhắc Thiết kế
6 Prototype - Ví dụ
7 Prototype - So sánh với Singleton
8 Prototype - Điểm cần lưu ý
9 Prototype - Tổng kết
1 Abstract Factory - Giới thiệu
2 Abstract Factory - Các bước Triển khai
3 Abstract Factory - Ví dụ UML
4 Abstract Factory - Triển khai
5 Abstract Factory - Triển khai & Cân nhắc Thiết kế
6 Abstract Factory - Ví dụ
7 Abstract Factory - So sánh với Factory Method
8 Abstract Factory - Điểm cần lưu ý
9 Abstract Factory - Tổng kết
1 Singleton - Giới thiệu
2 Singleton - Các bước Triển khai
3 Singleton - Triển khai - Eager Singleton
4 Singleton - Triển khai - Lazy Singleton
5 Singleton - Triển khai - Initialization Holder
6 Singleton - Triển khai - Enum
7 Singleton - Triển khai & Cân nhắc Thiết kế
8 Singleton - Ví dụ
9 Singleton - So sánh với Factory Method
10 Singleton - Điểm cần lưu ý
11 Singleton - Tổng kết
1 Object Pool - Giới thiệu
2 Object Pool - Các bước Triển khai
3 Object Pool - Ví dụ UML
4 Object Pool - Triển khai
5 Object Pool - Triển khai & Cân nhắc Thiết kế
6 Object Pool - Ví dụ
7 Object Pool - So sánh với Prototype
8 Object Pool - Điểm cần lưu ý
9 Object Pool - Tổng kết
1 Mẫu Thiết kế Cấu trúc - Giới thiệu
1 Adapter - Giới thiệu
2 Adapter - Các bước Triển khai
3 Adapter - Ví dụ UML
4 Adapter - Triển khai - Class Adapter
5 Adapter - Triển khai - Object Adapter
6 Adapter - Triển khai & Cân nhắc Thiết kế
7 Adapter - Ví dụ
8 Adapter - So sánh với Decorator
9 Adapter - Điểm cần lưu ý
10 Adapter - Tổng kết
1 Bridge - Giới thiệu
2 Bridge - Các bước Triển khai
3 Bridge - Ví dụ UML
4 Bridge - Triển khai
5 Bridge - Triển khai & Cân nhắc Thiết kế
6 Bridge - Ví dụ
7 Bridge - So sánh với Adapter
8 Bridge - Điểm cần lưu ý
9 Bridge - Tổng kết
1 Decorator - Giới thiệu
2 Decorator - Các bước Triển khai
3 Decorator - Ví dụ UML
4 Decorator - Triển khai
5 Decorator - Triển khai & Cân nhắc Thiết kế
6 Decorator - Ví dụ
7 Decorator - So sánh với Composite
8 Decorator - Điểm cần lưu ý
9 Decorator - Tổng kết
1 Composite - Giới thiệu
2 Composite - Các bước Triển khai
3 Composite - Ví dụ UML
4 Composite - Triển khai
5 Composite - Triển khai & Cân nhắc Thiết kế
6 Composite - Ví dụ
7 Composite - So sánh với Decorator
8 Composite - Điểm cần lưu ý
9 Composite - Tổng kết
1 Facade - Giới thiệu
2 Facade - Các bước Triển khai
3 Facade - Ví dụ UML
4 Facade - Triển khai
5 Facade - Triển khai & Cân nhắc Thiết kế
6 Facade - Ví dụ
7 Facade - So sánh với Adapter
8 Facade - Điểm cần lưu ý
9 Facade - Tổng kết
1 Flyweight - Giới thiệu
2 Flyweight - Các bước Triển khai
3 Flyweight - Ví dụ UML
4 Flyweight - Triển khai
5 Flyweight - Triển khai & Cân nhắc Thiết kế
6 Flyweight - Ví dụ
7 Flyweight - So sánh với Object Pool
8 Flyweight - Điểm cần lưu ý
9 Flyweight - Tổng kết
1 Proxy - Giới thiệu
2 Proxy - Các bước Triển khai Phần 1
3 Proxy - Ví dụ UML
4 Proxy - Triển khai Phần 1
5 Proxy - Các bước Triển khai Dynamic Proxy
6 Proxy - Triển khai Dynamic Proxy
7 Proxy - Triển khai & Cân nhắc Thiết kế
8 Proxy - Ví dụ
9 Proxy - So sánh với Decorator
10 Proxy - Điểm cần lưu ý
11 Proxy - Tổng kết
1 Mẫu Hành vi - Giới thiệu
1 Chain of Responsibility - Giới thiệu
2 Chain of Responsibility - Các bước Triển khai
3 Chain of Responsibility - Ví dụ UML
4 Chain of Responsibility - Triển khai
5 Chain of Responsibility - Triển khai & Cân nhắc Thiết kế
6 Chain of Responsibility - Ví dụ
7 Chain of Responsibility - So sánh với Command
8 Chain of Responsibility - Điểm cần lưu ý
9 Chain of Responsibility - Tổng kết
1 Command - Giới thiệu
2 Command - Các bước Triển khai
3 Command - Ví dụ UML
4 Command - Triển khai
5 Command - Triển khai & Cân nhắc Thiết kế
6 Command - Ví dụ
7 Command - So sánh với Strategy
8 Command - Những điểm cần lưu ý
9 Command - Tổng kết
1 Interpreter - Giới thiệu
2 Interpreter - Các bước triển khai
3 Interpreter - Ví dụ về UML
4 Interpreter - Triển khai thực tế
5 Interpreter - Triển khai & Cân nhắc thiết kế
6 Interpreter - Ví dụ minh họa
7 Interpreter - So sánh với Visitor
8 Interpreter - Những điểm cần lưu ý
9 Interpreter - Tổng kết
1 Mediator - Giới thiệu
2 Mediator - Các bước triển khai
3 Mediator - Ví dụ về UML
4 Mediator - Triển khai thực tế
5 Mediator - Triển khai & Cân nhắc thiết kế
6 Mediator - Ví dụ minh họa
7 Mediator - So sánh với Observer
8 Mediator - Những điểm cần lưu ý
9 Mediator - Tổng kết
1 Iterator - Giới thiệu
2 Iterator - Các bước triển khai
3 Iterator - Ví dụ về UML
4 Iterator - Triển khai thực tế
5 Iterator - Triển khai & Cân nhắc thiết kế
6 Iterator - Ví dụ minh họa
7 Iterator - Những điểm cần lưu ý
8 Iterator - Tổng kết
1 Memento - Giới thiệu
2 Memento - Các bước triển khai
3 Memento - Ví dụ về UML
4 Memento - Triển khai thực tế
5 Memento - Triển khai & Cân nhắc thiết kế
6 Memento - Ví dụ minh họa
7 Memento - So sánh với Command
8 Memento - Những điểm cần lưu ý
9 Memento - Tổng kết
1 Observer - Giới thiệu
2 Observer - Các bước triển khai
3 Observer - Ví dụ về UML
4 Observer - Triển khai thực tế
5 Observer - Triển khai & Cân nhắc thiết kế
6 Observer - Ví dụ minh họa
7 Observer - So sánh với Mediator
8 Observer - Những điểm cần lưu ý
9 Observer - Tổng kết
1 State - Giới thiệu
2 State - Các bước triển khai
3 State - Ví dụ về UML
4 State - Triển khai thực tế
5 State - Triển khai & Cân nhắc thiết kế
6 State - Ví dụ minh họa
7 State - So sánh với Command
8 State - Những điểm cần lưu ý
9 State - Tổng kết
1 Strategy - Giới thiệu
2 Strategy - Các bước triển khai
3 Strategy - Ví dụ về UML
4 Strategy - Triển khai thực tế
5 Strategy - Triển khai & Cân nhắc thiết kế
6 Strategy - Ví dụ minh họa
7 Strategy - So sánh với State
8 Strategy - Những điểm cần lưu ý
9 Strategy - Tổng kết
1 Template Method - Giới thiệu
2 Template Method - Các bước triển khai
3 Template Method - Ví dụ về UML
4 Template Method - Triển khai thực tế
5 Template Method - Triển khai & Cân nhắc thiết kế
6 Template Method - Ví dụ minh họa
7 Template Method - So sánh với Strategy
8 Template Method - Những điểm cần lưu ý
9 Template Method - Tổng kết
1 Visitor - Giới thiệu
2 Visitor - Các bước triển khai
3 Visitor - Ví dụ về UML
4 Visitor - Triển khai thực tế
5 Visitor - Triển khai & Cân nhắc thiết kế
6 Visitor - Ví dụ minh họa
7 Visitor - So sánh với Strategy
8 Visitor - Những điểm cần lưu ý
9 Visitor - Tổng kết
1 Null Object - Giới thiệu
2 Null Object - Các bước triển khai
3 Null Object - Ví dụ về UML
4 Null Object - Triển khai thực tế
5 Null Object - Triển khai & Cân nhắc thiết kế
6 Null Object - Ví dụ minh họa
7 Null Object - So sánh với Proxy
8 Null Object - Những điểm cần lưu ý
9 Null Object - Tổng kết
1 Tài liệu tóm tắt Design Patterns

Giới thiệu khóa học

Course Overview

    This course starts with SOLID Design Principles in Java. It will then provide a comprehensive introduction to Java Design patterns with practical, hands on exercises.


What are SOLID Design Principles?

SOLID design principles are almost a mandatory skill for every Java developer. These principles enable you to write most reusable & clean Java code in your projects.

You'll learn SOLID Principles which are:

Single Responsibility Principle

Open-Closed Principle

Liskov Substitution Principle

Interface Segregation Principle

Dependency Inversion Principle


All these principles are explained in detail and you'll refactor existing Java code and apply these principles in hands on exercise along with me.

Then we move on to Java Design Patterns.

To learn about the design patterns using Java programming language we'll discuss:   

  •     Learn what kind of problems are solved by each design pattern.

  •     Discuss various roles in the design pattern using UML diagrams.

  •     We'll use UML of example that we are going to solve as well as UMLs from gang of four book

  •     Discuss how the design  pattern is applied in the example & how various parts fit together.

  •     Hands on example using Java in Eclipse IDE that uses the design pattern.

  •     Various design & implementation considerations for every design pattern.

  •     Discuss how the design pattern varies from another similar pattern.

  •     See where a design pattern is used in real life.

This course covers all the classic design patterns from the Gang of Four (GoF) book. In addition we'll discuss few newer design patterns that are used in modern software development. We'll discuss how a pattern can be implemented in various ways & how we can tailor them to be used with Java language.

This course is the Most Comprehensive course on Java Design Patterns that you can find.


So, what are Design Patterns & why should you care?

    Design patterns represent solutions to common problems, which you face while doing programming. These solutions are reusable and can solve a wide variety of problems. These became popular with the release of classic book on the subject "Elements of Reusable Object-Oriented Software" writtern by Erich Gamma, John Vlissides, Ralph Johnson and Richard Helm (these authors are known as Gang of Four and so the common abbreviation GoF book :) )
    One problem while studying this book as a Java developer is that the authors are using C++ to demonstrate a pattern, which was the most popular & widely used programming language at the time. So you'll see examples using C++ language features like pointers, copy constructors etc. which do not translate easily to Java.
    This course will help greatly in that aspect. We'll study each design pattern using Java to its full potential.


What is covered in this course?

    This course covers SOLID Design Principles and 26 design patterns in all. We'll cover following:

  • SOLID Design Principles: Learn about Single Responsibility, Open-Closed, Liskov substitution, Interface segregation & Dependency Inversion principles.

  • Creational Design Patterns: Simple Factory, Abstract Factory, Factory Method, Singleton, Builder, Prototype & Object Pool

  • Structural Design Patterns: Object & Class Adapters, Decorator, Bridge, Facade, Static & Dynamic Proxy, Flyweight & Composite  

  • Behavioral Design Patterns: Chain of Responsibility, Command, Interpreter, Mediator, Iterator, Memento, Observer, State, Strategy, Template Method, Visitor, & Null Object

    Each design patterns is also implemented in a follow along coding lecture.


How the Course is Structured?

    We focus on live coding along with theory. Each design is implemented in a live coding session (which you can follow along) as well as discussed with UML & slides. After studing a section you'll know almost everything about the design pattern.

    This course is created with focus on being used as a reference. So each design pattern is discussed in it's own section with a separated lecture for each aspect of the design pattern. Each section is organized as following lectures:
    1. Introduction - This lecture introduces pattern, a problem that it solves & a formal UML diagram
    2. Implementation Steps - This lecture will discuss how you'll implement this pattern in Java.
    3. Example UML - We discuss the UML of the hands on problem we're going to solve.
    4. Implementation - In this lecture we'll implement the design pattern in Java using Eclipse IDE
    5. Implementation & Design Considerations - Some important points about performance, variations & practical advice on using the pattern
    6. Real World Example - In this lecture we'll see how the pattern is used in real life by Java's own class library & popular frameworks like Spring, JSF
    7. Comparison with Similar pattern - See how the pattern is different than another similar pattern.
    8. Pitfalls - Many pattern have some drawbacks. This lecture will show you what those are.
    9. Summary - This lecture will summarise all the information about the pattern.

    As you can see, by breaking a single design pattern in smaller topics, you can easily watch only those parts that you need in future.


What is provided with the Course?

  •  We have provided all code samples from the hands on lectures. You can download the starter code & follow along or you can download the finished code to study on your own.

  •  All UML diagram with description of each role in the design pattern is provided as PDF in summary video. These slides are enough to quickly revise design pattern structure.

  • A PDF guide to all design pattern summaries with code samples and UML diagrams.

Who should take this Course?

  • Beginner as well as experience Developers.

  • Software Designers & Architects.

 

Khóa học liên quan

Khám phá thêm các khoá học cùng chủ đề

Hiển thị tất cả khoá học Design Patterns
Hiển thị tất cả khoá học Java
Hiển thị tất cả khoá học Object Oriented Programming
Hiển thị tất cả khoá học Software Development
Zalo
Tôi có thể tư vấn khoá học cho bạn 😊