Syntax | سینتکس
3.01K subscribers
410 photos
108 videos
35 files
378 links
Download Telegram
Dispatching

تا حالا دیدی تو یه مرکز تماس، اپراتور تماس رو وصل می‌کنه به بخش مناسب؟ مثلاً مشکل فنی داری می‌ری پشتیبانی، پولی باشه می‌ری حسابداری؟ خب اون کاری که اپراتوره می‌کنه رو بهش می‌گن Dispatch

توی برنامه‌نویسی هم همینه:
یه درخواست میاد، سیستم نگاه می‌کنه، می‌فرستدش به جای درست


یه مثال ساده با GO


switch contactType {
case "technical":
technicalSupport()
case "accounting":
accounting()
case "sales":
sales()
}


بسته به اینکه contactType چیه، می‌فرستیمش به تابع مناسب.


انواع Dispatch تو Go


1. Dynamic Dispatch با اینترفیس:
تو زمان اجرا تصمیم می‌گیریم کدوم متد رو صدا بزنیم:


   var s Speaker
s = Dog{} // Woof!
s = Cat{} // Meow!


2. Dispatch از طریق کانال‌ها:
با select منتظریم ببینیم کدوم کانال زودتر پیام می‌ده:


   select {
case msg := <-ch1:
fmt.Println(msg)
case msg := <-ch2:
fmt.Println(msg)
}


3. Static Dispatch با Map یا Switch:


   actions := map[string]func(){
"start": func() { fmt.Println("Starting...") },
}


چرا Dispatch

- نظم می‌ده به کد.
- قابل گسترشه.
- بهینه‌تر می‌شه.

#Golang #Dispatching

@Syntax_fa
👍114❤‍🔥1