طراحی یک رابط خط فرمان انعطاف پذیر و غیر قابل انعطاف (CLI) برای ایجاد برنامه های پایتون قابل نگهداری و مقیاس پذیر ضروری است.یک الگوی طراحی موثر برای دستیابی به این است الگوی فرماندهی، که درخواست ها را به عنوان اشیاء، اجازه می دهد برای گسترش آسان و اصلاح.

درک الگوی فرماندهی

الگوی فرماندهی، شی را که از عملیات از فردی که می داند چگونه آن را انجام دهد، جدا می کند.در زمینه یک CLI، هر دستور را می توان به عنوان یک کلاس با یک رابط مشترک نمایندگی کرد و آن را به سادگی برای اضافه کردن دستورات جدید بدون تغییر کد موجود است.

پیاده سازی الگوی در پایتون

برای پیاده سازی این الگو، با تعریف یک کلاس فرماندهی پایه با یک روش اجرا () شروع کنید، سپس زیر کلاس هایی را برای هر دستور خاص ایجاد کنید، رفتار خود را محدود کنید.در نهایت، این دستورات را در یک رجیستری یا فرهنگ لغت برای حرفه آسان بر اساس ورودی کاربر مدیریت کنید.

مثال: Base Command Class

اینجا یک کلاس پایه ساده برای دستورات است:

class Command:
 def execute(self):
 raise NotImplementedError("You should implement this method.")

ایجاد دستورات خاص

برای مثال، یک دستور برای پاسخ دادن به کاربر:

class GreetCommand(Command):
 def __init__(self, name):
 self.name = name

 def execute(self):
 print(f"Hello, {self.name}!")

ثبت و اخراج دستورات

از یک فرهنگ لغت برای نقشه برداری نام های دستور به کلاس ها یا موارد خود استفاده کنید، زمانی که یک کاربر یک دستور را وارد می کند، آن را نگاه کنید و آن را به صورت پویا اجرا کنید.

commands = {
 "greet": GreetCommand("Alice"),
}

def run_command(command_name):
 command = commands.get(command_name)
 if command:
 command.execute()
 else:
 print("Unknown command.")

مزایای استفاده از الگوی فرماندهی

  • قابلیت پذیری: به راحتی دستورات جدید را بدون تغییر منطق هسته ای اضافه کنید.
  • قابلیت نگهداری: رفتار فرمان Encapsulate در کلاس های اختصاصی
  • انعطاف پذیری: پشتیبانی از عملیات های خنثی، ورود یا صف های فرمان.

با اتخاذ الگوی فرماندهی در برنامه های Python CLI، شما یک معماری مقیاس پذیر ایجاد می کنید که ویژگی های جدید و حفظ ویژگی های موجود را ساده می کند.این رویکرد منجر به تمیزتر، کد سازمان یافته تر و تجربه توسعه دهنده بهتر می شود.