Code By Me
1K subscribers
1.88K photos
385 videos
4 files
752 links
برنامه نویسی لذت بخش تره یا چایی ؟
.
.
ارتباط:
@AmirMohammadMohammadi

.
Instagram: codebyme_official
Youtube: codebyme
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





@codebyme
👍3