GoDasturchi
Interface Capstone

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.

Finish
OUTPUT

$ go run main.go
Kodingizni ishga tushiring

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.