TGViewer
| کانال ربات تلگرام | | کانال ربات تلگرام | @developixrobot · 1.24K subscribers
Post #16 1K
الگوی Command برای هندلرهای ربات تلگرام — سازماندهی دستورات

الگوی Command یکی از ساده‌ترین و کاربردی‌ترین راه‌ها برای جداسازی منطق هر دستور در ربات تلگرام است. به جای نوشتن یک تابع بزرگ که همه دستورات را هندل می‌کند، برای هر دستور یک کلاس یا شیء مجزا تعریف می‌کنیم که تنها مسئول اجرای آن دستور باشد. این کار خوانایی، تست‌پذیری و گسترش‌پذیری پروژه را به‌طور چشمگیر بالا می‌برد.

مثال ساده در پایتون برای درک بهتر:
class Command:
def execute(self, update, context):
raise NotImplementedError

class StartCommand(Command):
def execute(self, update, context):
context.bot.send_message(chat_id=update.effective_chat.id, text="سلام! خوش آمدید.")

class HelpCommand(Command):
def execute(self, update, context):
context.bot.send_message(chat_id=update.effective_chat.id, text="لیست دستورات: /start, /help")

router = {
'/start': StartCommand(),
'/help': HelpCommand(),
}

def handle_update(update, context):
text = update.message.text.split()[0]
cmd = router.get(text)
if cmd:
cmd.execute(update, context)


چند نکته عملی:
- Single Responsibility: هر کلاس فقط یک کار انجام می‌دهد (SRP از اصول SOLID).
- تست‌پذیری: می‌توان هر Command را جداگانه unit-test کرد بدون نیاز به بوت‌استرپ کل بات.
- گسترش‌پذیری: اضافه کردن دستور جدید فقط اضافه کردن یک کلاس و ثبت آن در router است.
- Middleware: اگر نیاز به لاگ یا اعتبارسنجی باشد، می‌توان لایه‌ای بین handle_update و اجرای Command قرار داد یا یک Decorator برای Commandها نوشت.

الگوی Command مخصوصاً وقتی تعداد دستورات زیاد است یا هر دستور منطق پیچیده‌ای دارد، مزیت دارد. با این ساختار نگهداری و توسعه ربات‌های تلگرام ساده‌تر و مرتب‌تر خواهد شد.

🔖 #TelegramBot #ربات #تلگرام #design_patterns #command_pattern #telegram_bot #python #clean_code

👤 Developix

💎 Channel: @DevelopixRobot
  • 👍 7
  • 👎 1
More from @developixrobot
  1. Sep 18, 2026🔥 پروژه: پچ‌رایت؛ Playwright کم‌تر قابل‌ردیابی پچ‌رایت یک فورک از کتابخانهٔ Playwright بر…
  2. Sep 16, 2026🚀 ‏LaraGram Brain منتشر شد! از این به بعد برای ساخت ربات‌های تلگرام با فریم‌ورک LaraG…
  3. Sep 1, 2026خیلی وقت‌ها ربات لینک می‌فرستد، اما پیش‌نمایش بزرگ صفحه کل کل چت را شلوغ می‌کند 😅 مخصوصاً…
  4. Aug 27, 2026💠 نسخه جدید کتابخانه GrammY منتشر شده است 🔸 ارتقا از نسخه 1.45.1 به 1.46.0 🔖 #grammy, #…
  5. Aug 26, 2026💠 نسخه جدید کتابخانه آیوگرام (Aiogram) منتشر شده است 🔸 ارتقا از نسخه 3.30.0 به 3.31.0 🔖…
  6. Aug 24, 2026🔥 پروژه: ‏TikTok Live Connector برای ربات‌ها کتابخانه Node.js ‏TikTok Live Connec…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →