Pillar #5 8 chương SOLID + 23 GoF Patterns Refactoring · DDD-lite

OOP & Design Patterns

Bốn trụ cột OOP, năm nguyên lý SOLID, và toàn bộ 23 mẫu thiết kế Gang of Four — kèm anti-pattern thường gặp, refactoring thực chiến, và những khái niệm cốt lõi của Domain-Driven Design. Ví dụ minh họa bằng TypeScript (chính) và Java/Python khi idiomatic. Mỗi chương có ~600–900 dòng nội dung chi tiết với UML diagram, code, bài tập, và quiz cuối chương.

Lộ trình 8 chương

Đọc theo thứ tự để xây nền OOP vững → SOLID → ứng dụng vào pattern thật. Pattern không phải để học thuộc tên, mà để nhận ra khi nàotại sao dùng.

CHƯƠNG 01

OOP Fundamentals & 4 Pillars

Class/object, encapsulation, abstraction, inheritance, polymorphism. Lịch sử OOP từ Smalltalk → C++ → Java → modern. Static vs dynamic dispatch.

Class Encapsulation Polymorphism Inheritance
CHƯƠNG 02

SOLID Principles

Single Responsibility, Open/Closed, Liskov Substitution, Interface Segregation, Dependency Inversion — với ví dụ refactor trước/sau cho từng nguyên lý.

SRP OCP LSP DIP
CHƯƠNG 03

Class Design Mastery

Composition vs Inheritance, immutability, value vs reference, equals/hashCode, interface design, dependency injection, law of Demeter.

Composition Immutable DI Demeter
CHƯƠNG 04

Creational Patterns — 5 mẫu

Factory Method · Abstract Factory · Builder · Prototype · Singleton. Khi nào dùng cái nào, tradeoff, và những biến thể hiện đại (DI container thay Factory).

Factory Builder Singleton Prototype
CHƯƠNG 05

Structural Patterns — 7 mẫu

Adapter · Bridge · Composite · Decorator · Facade · Flyweight · Proxy. Cách 7 pattern ghép các đối tượng thành cấu trúc lớn linh hoạt.

Adapter Decorator Proxy Facade
CHƯƠNG 06

Behavioral Part 1 — 6 mẫu

Chain of Responsibility · Command · Iterator · Mediator · Memento · Observer. Cách object giao tiếp và phân chia trách nhiệm runtime.

Observer Command Iterator Mediator
CHƯƠNG 07

Behavioral Part 2 — 5 mẫu

State · Strategy · Template Method · Visitor · Interpreter. Hoàn tất 23 GoF pattern. Phân biệt Strategy vs State, Template vs Strategy.

Strategy State Visitor Template
CHƯƠNG 08

Anti-patterns + Refactoring + DDD-lite

God Object, Feature Envy, Shotgun Surgery, Spaghetti, etc. Refactoring catalog (Extract Method, Replace Conditional with Polymorphism). DDD: Entity, Value Object, Aggregate, Repository.

Refactor Code Smell DDD Aggregate

Cách tiếp cận hiệu quả

  1. Đọc giáo trình tổng quan trước để có bản đồ tư duy về OOP và toàn bộ 23 pattern.
  2. Học theo thứ tự 1→8. Pattern (Ch4–7) phụ thuộc nắm vững OOP (Ch1) + SOLID (Ch2) + Class Design (Ch3).
  3. Mỗi pattern hỏi 3 câu: Vấn đề gì pattern này giải quyết? Cấu trúc UML thế nào? Thay vì pattern thì lựa chọn khác là gì?
  4. Code thực sự — đừng chỉ đọc. Mở 1 project nhỏ và áp dụng 1 pattern mới mỗi tuần.
  5. Tránh bệnh "pattern hammer" — không phải mọi vấn đề đều cần pattern. Code đơn giản > code "đúng pattern" mà over-engineered.
"Patterns không phải đích đến — chúng là vốn từ vựng để bạn nói chuyện với đồng nghiệp về thiết kế. Học để nhận ra, không phải để cố ép."