از طریق منوی جستجو مطلب مورد نظر خود در وبلاگ را به سرعت پیدا کنید
الگوهای طراحی در پایتون
سرفصلهای مطلب
معرفی
الگوهای طراحی مدل های قابل استفاده مجدد برای حل مشکلات شناخته شده و رایج در معماری نرم افزار هستند.
آنها به بهترین وجه به عنوان الگوهایی برای مقابله با یک موقعیت معمولی خاص توصیف می شوند. یک معمار ممکن است الگویی برای طراحی انواع خاصی از قابهای درب داشته باشد که در بسیاری از پروژههای خود جای میگیرد و یک مهندس نرمافزار یا معمار نرمافزار باید الگوهایی را برای حل چالشهای برنامهنویسی مکرر بداند.
ارائه خوب یک الگوی طراحی باید شامل موارد زیر باشد:
- نام
- مشکل انگیزشی
- راه حل
- عواقب
مسائل معادل
اگر فکر می کردید که خیلی زیباست درهم مفهوم، حق با شماست به عنوان مثال، می توانیم بگوییم که “الگوی” زیر تمام مشکلات شما را حل می کند:
- داده های لازم و سایر منابع را واکشی و آماده کنید
- محاسبات مورد نیاز را انجام دهید و کارهای لازم را انجام دهید
- از کارهایی که انجام میدهید گزارش تهیه کنید
- همه منابع را آزاد کنید
- ؟؟؟
- سود
این نمونه ای از تفکر است خیلی انتزاعی. شما واقعاً نمی توانید این را یک الگو بنامید زیرا با وجود اینکه از نظر فنی برای هر یک از آنها (از جمله تهیه شام) قابل استفاده است، واقعاً مدل خوبی برای حل هر مشکلی نیست.
از سوی دیگر، میتوانید راهحلهایی داشته باشید که خیلی ملموس هستند و نمیتوان آنها را الگو نامید. به عنوان مثال، می توانید تعجب کنید که آیا QuickSort الگویی برای حل مشکل مرتب سازی است یا خیر.
مطمئناً یک مشکل برنامه نویسی رایج است و QuickSort راه حل خوبی برای آن است. با این حال، می توان آن را برای هر مشکل مرتب سازی با اندک یا بدون تغییر اعمال کرد.
هنگامی که آن را در یک کتابخانه دارید و می توانید با آن تماس بگیرید، تنها کار واقعی شما این است که شیء خود را به نحوی قابل مقایسه کنید، واقعاً لازم نیست خودتان با ماهیت آن مقابله کنید تا آن را مطابق با مشکل خاص خود تغییر دهید.
مسائل معادل جایی بین این مفاهیم است. اینها مشکلات مختلفی هستند که به اندازه کافی مشابه هستند که می توانید مدل مشابهی را برای آنها اعمال کنید، اما به اندازه کافی متفاوت هستند که این مدل باید به طور قابل توجهی سفارشی شود تا در هر مورد قابل اجرا باشد.
الگوهایی که می توانند برای این نوع مشکلات به کار روند همان چیزی هستند که می توانیم به طور معناداری دوبله کنیم الگوهای طراحی.
چرا از الگوهای طراحی استفاده کنیم؟
احتمالاً از طریق تمرین کدنویسی با برخی از الگوهای طراحی آشنا هستید. بسیاری از برنامه نویسان خوب در نهایت به سمت آنها گرایش پیدا می کنند حتی بدون اینکه به طور صریح به آنها آموزش داده شود یا فقط آنها را از سالمندان در طول راه می گیرند.
انگیزه ها برای ساختن، یادگیری و استفاده از الگوهای طراحی متنوع هستند. آنها راهی برای نامگذاری مفاهیم پیچیده انتزاعی برای فعال کردن بحث و آموزش هستند.
آنها ارتباطات درون تیمی را سریعتر میکنند، زیرا کسی میتواند فقط از نام الگو استفاده کند به جای اینکه تخته سفید را بیرون بیاورد. آنها شما را قادر می سازند تا از تجربیات افرادی که قبل از شما آمده اند یاد بگیرید، به جای اینکه مجبور باشید با گذراندن کل بوته ی بهبود تدریجی شیوه ها (و مجبور باشید دائماً در مورد کدهای قدیمی خود متعجب شوید) چرخ را دوباره اختراع کنید.
راه حل های بدی که معمولاً اختراع می شوند زیرا منطقی به نظر می رسند روی نگاه اول اغلب نامیده می شود ضد الگوها. برای اینکه چیزی به درستی یک ضدالگو نامیده شود، باید به طور معمول دوباره اختراع شود و باید الگویی برای همان مشکل وجود داشته باشد که آن را بهتر حل کند.
با وجود کاربرد آشکار در عمل، الگوهای طراحی برای یادگیری نیز مفید هستند. آنها شما را با مشکلات زیادی آشنا می کنند که ممکن است در نظر نگرفته باشید و به شما اجازه می دهند در مورد سناریوهایی فکر کنید که ممکن است در دستان شما نبوده باشد.روی تجربه با عمق
آنها برای همه باید یاد بگیرند و منبع یادگیری فوق العاده خوبی برای همه معماران و توسعه دهندگان مشتاقی هستند که ممکن است در ابتدای کار خود باشند و تجربه دست اول دست و پنجه نرم کردن با مشکلات مختلفی را که صنعت ارائه می دهد ندارند.
الگوهای طراحی در پایتون
به طور سنتی، الگوهای طراحی به سه دسته اصلی طبقه بندی می شوند: خلاقانه، ساختاری، و رفتاری. دسته های دیگری نیز وجود دارد، مانند معماری یا همزمانی الگوها، اما آنها خارج از محدوده این مقاله هستند.
همچنین الگوهای طراحی اختصاصی پایتون وجود دارد که به طور خاص پیرامون مشکلاتی که ساختار خود زبان ارائه میکند ایجاد میشوند یا به روشهای خاصی با مشکلات برخورد میکنند که فقط به دلیل ساختار زبان مجاز هستند.
الگوهای طراحی خلاقانه با ایجاد کلاس ها یا اشیاء سروکار دارد. آنها به انتزاع کردن ویژگی های کلاس ها کمک می کنند تا کمتر وابسته باشیم روی اجرای دقیق آنها، یا به این ترتیب که هر زمان که به آنها نیاز داشتیم مجبور نباشیم با ساخت و سازهای پیچیده سر و کار داشته باشیم، یا بنابراین از برخی ویژگی های نمونه سازی خاص اطمینان حاصل کنیم. آنها برای کاهش سطح وابستگی و کنترل روش تعامل کاربر با کلاس های ما بسیار مفید هستند.
الگوهای طراحی سازه با مونتاژ اشیاء و کلاس ها در ساختارهای بزرگتر سروکار دارد، در حالی که این ساختارها را انعطاف پذیر و کارآمد نگه می دارد. آنها تمایل دارند برای بهبود خوانایی و قابلیت نگهداری کد واقعا مفید باشند، اطمینان حاصل کنند که عملکردها به درستی از هم جدا شده اند، کپسوله شده اند، و حداقل رابط های مؤثر بین چیزهای وابسته به هم وجود دارد.
الگوهای طراحی رفتاری به طور کلی با الگوریتم ها و تخصیص مسئولیت بین اشیاء در حال تعامل سروکار دارد. برای مثال، در مواردی که ممکن است وسوسه شوید راه حل سادهای را اجرا کنید، روشهای خوبی هستند، مانند مشغول انتظار، یا کلاس های خود را با کدهای غیر ضروری برای یک هدف خاص بارگذاری کنید که هسته عملکرد آنها نیست.
الگوهای طراحی خلاقانه
الگوهای طراحی سازه
الگوهای طراحی رفتاری
به زودی!
الگوهای طراحی اختصاصی پایتون
به زودی!
(برچسبها به ترجمه)# python
منتشر شده در 1403-01-19 01:27:04