Interface Capstone
Interfeyslar: yakuniy loyiha
Endi shu kursda o'rgangan hammasini — kichik interfeyslar, ularni ishlatilgan joyda e'lon qilish va kompozitsiya — kichik "bildirishnoma tizimi"da birlashtiramiz.
Vazifa: ikkita kichik interfeys (Validator, Sender) yozing, ularni birlashtirib bitta NotificationChannel interfeysini yarating, so'ng shu interfeys orqali ishlaydigan funksiya yozing.
>_ Exercise
Quyidagi bosqichlarni bajaring:
- •Validator interfeysini yozing: Validate(msg string) bool
- •Sender interfeysini yozing: Send(msg string) string
- •NotificationChannel interfeysini ikkalasini birlashtirib yarating
- •EmailChannel struct'ini ikkala metod bilan yozing (Validate: msg bo'sh bo'lmasa true; Send: "Email yuborildi: "+msg)
- •dispatch(ch NotificationChannel, msg string) string funksiyasini yozing: Validate false bo'lsa "xabar bo'sh" qaytarsin, aks holda Send natijasini qaytarsin
Stuck? Reveal a hint to help you.
Hints (0/3)
Key Takeaway
Key Takeaway:
Kichik interfeyslarni ishlatilgan joyda e'lon qilib, kerak bo'lganda kompozitsiya qilish — moslashuvchan, test qilinadigan va ortiqcha murakkablikdan holi kod yozishning yakuniy naqshi.
OUTPUT
$ go run main.go
Kodingizni ishga tushiring