OOP — Object-Oriented Programming
OOP language-agnostic — 4 tính chất, SOLID, design pattern. Ví dụ song song C# và TypeScript.
OOP là gì?
Object-Oriented Programming = mô hình hoá thế giới thực bằng object — đơn vị gói cả state (data) và behavior (method) trong một thực thể.
OOP là paradigm (mẫu lập trình), không phải feature của 1 ngôn ngữ. C#, Java, TypeScript, Python, Ruby, Kotlin, Swift, C++ đều hỗ trợ OOP. Bài học OOP từ ngôn ngữ này áp dụng được sang ngôn ngữ khác.
Section này trình bày OOP bilingual — code minh hoạ song song bằng C# và TypeScript. Chọn ngôn ngữ quen, lướt qua cái còn lại để mở rộng.
Lộ trình section
| Trang | Nội dung |
|---|---|
| 1. Bốn tính chất OOP | Encapsulation, Abstraction, Inheritance, Polymorphism — định nghĩa, ví dụ, biến thể |
| 2. SOLID — 5 nguyên lý | SRP, OCP, LSP, ISP, DIP — refactor case study mỗi nguyên lý |
| 3. Design Pattern | Creational, Structural, Behavioral — 12 pattern phổ biến nhất với ví dụ C# + TS |
| 4. Câu hỏi phỏng vấn | 50+ Q&A OOP cho fresher/junior |
Tại sao học OOP nghiêm túc?
PV gần như chắc chắn hỏi
Fresher .NET, Java, mobile (Swift/Kotlin) — hỏi 4 tính chất + SOLID là chuẩn. Mid/Senior — hỏi design pattern và trade-off.
Đọc framework dễ hơn
ASP.NET Core, Spring, NestJS, Angular đều xây trên OOP + design pattern. Hiểu OOP → đọc source dễ hơn nhiều.
Code reuse + maintainable
OOP đúng cách → ít duplicate, dễ test, dễ thay đổi. Học để tránh "god class" 2000 dòng.
Chuyển ngôn ngữ dễ
C# → TS, TS → Kotlin… concept giống nhau. Cú pháp khác chỉ là chi tiết.
Bắt đầu với 4 tính chất OOP.