# Model và state riêng cho từng màn hình

> Sealed interface thay cho cờ boolean rời rạc, mỗi màn hình một state chỉ chứa thứ nó vẽ, và property get() suy ra thay vì lưu trùng dữ liệu.

- URL: https://dantech.academy/courses/kotlin-mobile-101/03-mvvm/lesson-02-model-and-ui-state
- Khóa học: [Kotlin Mobile 101](https://dantech.academy/courses/kotlin-mobile-101.md)
- Module: MVVM
- Thời lượng: 12 phút
- Độ khó: beginner
- Truy cập: Dành cho học viên

## Mục tiêu

- Mô hình hóa kết quả bằng sealed interface thay vì nhiều cờ boolean rời rạc
- Dùng property get() suy ra giá trị thay vì lưu trùng, để trạng thái không thể tự mâu thuẫn

## Nội dung bài học

1. Đừng Mô Tả Một Chuyện Bằng Nhiều Cờ
2. Mỗi Màn Hình Một State
3. Property get(): Suy Ra Thay Vì Lưu Trùng
4. Model Không Biết Ai Đọc Mình

## Học cùng AI agent

Toàn bộ bài học dành cho học viên của khóa. Học viên mở bài trên web và bấm nút **Markdown** để copy toàn bài, rồi dán vào Claude, ChatGPT, Cursor hoặc agent bạn đang dùng. Nhanh hơn: tạo token ở `/profile/ai-agents` và agent đọc bài trực tiếp qua MCP.

- [Đăng ký khóa học](https://dantech.academy/kotlin-mobile-101/checkout)

---

- Bài trước: [MVVM và phụ thuộc một chiều](https://dantech.academy/courses/kotlin-mobile-101/03-mvvm/lesson-01-why-mvvm-and-three-layers.md)
- Bài tiếp theo: [ViewModel với StateFlow](https://dantech.academy/courses/kotlin-mobile-101/03-mvvm/lesson-03-viewmodel-with-stateflow.md)
