✅ Menu Chuẩn - Interfaces
Chào mừng đến với bài học về Interfaces - tiêu chuẩn menu và dịch vụ trong Bếp Á!
🎯 Món Ăn Hôm Nay
Tưởng tượng bạn là quản lý chuỗi nhà hàng:
- Mọi nhà hàng phải có: Menu, Phục vụ, Thanh toán
- Phở Hà Nội làm theo cách riêng
- Bún Bò Huế làm theo cách riêng
- Nhưng chuẩn dịch vụ phải giống nhau!
Đó chính là Interface - quy chuẩn mà mọi nhà hàng phải tuân theo!
🥘 Interfaces Là Gì?
Interface = Tiêu chuẩn dịch vụ (quy định phải làm gì, không quy định làm thế nào)
// Tiêu chuẩn nhà hàng
type NhaHang interface {
HienThiMenu()
PhucVu(tenMon string) string
TinhTien() int
}
🍜 Ẩn Dụ Nhà Hàng:
- Interface = Tiêu chuẩn dịch vụ bắt buộc
- Methods = Các dịch vụ phải có
- Implementation = Cách mỗi nhà hàng thực hiện
👨🍳 Câu Chuyện Trong Bếp
Chuỗi nhà hàng "Bếp Á" có nhiều chi nhánh, mỗi chi nhánh phải tuân theo tiêu chuẩn chung!
🎉 Kết quả: Interface giúp quản lý nhiều loại nhà hàng dễ dàng!
📝 Công Thức Nấu (Code Examples)
Ví Dụ 1: Interface Cơ Bản
package main
import "fmt"
type MonAn interface {
TenMon() string
GiaTien() int
}
type Pho struct {
Loai string
}
func (p Pho) TenMon() string {
return "Phở " + p.Loai
}
func (p Pho) GiaTien() int {
return 50000
}
func main() {
var mon MonAn = Pho{Loai: "Bò"}
fmt.Printf("%s: %d VND\n", mon.TenMon(), mon.GiaTien())
}
💡 Bí Quyết Của Đầu Bếp
- Interface nhỏ gọn: 1-3 methods là tốt nhất
- Accept interfaces, return structs
- Type assertion an toàn: Luôn kiểm tra
ok
🎓 Bạn Đã Học Được
- ✅ Interface = Tiêu chuẩn dịch vụ
- ✅ Polymorphism = Nhiều loại, cùng cách xử lý
- ✅ Empty interface = Nhận mọi kiểu
🍜 Món Tiếp Theo
👉 Xử Lý Sự Cố - Error Handling
💡 Lời Khuyên Cuối: Interface giống tiêu chuẩn nhà hàng - rõ ràng thì mọi chi nhánh đều hoạt động tốt!