فارسی
باز کردن در Telegram

پست دیزاین پترن Composite چیست؟ 🫵

17 سپتامبر 2024
G
genix
دیزاین پترن Composite چیست؟ 🫵 الگوی طراحی Composite، یک الگوی طراحی structural هست که به شما امکان میده اشیاء رو در ساختارهای درخت مانند بنویسید تا سلسله مراتب بخشی از کل رو نشون بده. این به کلاینت(مشتری ها) اجازه میده تا با اشیاء و ترکیبات اشیا به طور یکنواخت رفتار کنن. به عبارت دیگه چه با یک شی منفرد و چه با گروهی از اشیا (کامپوزیت)، مشتریان میتونن به جای یکدیگر از اون ها استفاده کنن. الگوی طراحی کامپوزیت چه مشکلاتی رو میتونه حل کنه؟ 🧸 * یک سلسله مراتب بخشی از کل باید نشان داده بشه تا کلاینت ها بتونن با اشیاء جزئی و کل به طور یکنواخت رفتار کنن. * سلسله مراتب بخشی از کل، باید به عنوان ساختار درختی نشان داده بشه. الگوی طراحی کامپوزیت چه راه حلی را توصیف می کند؟ * یک رابط کامپوننت یکپارچه برای اشیاء قسمت (برگ) و اشیاء کل (کامپوزیت) تعریف میکنین. * اشیاء Leaf منفرد رابط Component رو مستقیماً پیاده سازی میکنن و اشیاء Composite درخواست ها رو به مؤلفه های فرزندشون ارسال میکنن. شاید درکش در نگاه اول سخت باشه برای همین یک منوی رستوران رو تصور کنید، که با استفاده از الگوی طراحی کامپوزیت ارائه شده. ‏1. MenuItem (Interface): این رابط پایه هست که عملیات مشترک رو برای همه آیتم های منو تعریف میکنه. میتونه شامل متدهایی مثل «getName()»، «getPrice()» و «getDescription()» باشه. ‏2. Leaf (Concrete Class): این یک آیتم منوی واحد مثل "برگر" یا "سالاد" رو نشون میده. «MenuItem» رو پیاده‌سازی میکنه و پیاده‌سازی‌های مشخصی رو برای متد های خود فراهم میکنه و جزئیات خاص اون آیتم رو برمی‌گردونه. ‏3. Composite (Concrete Class): این نشون دهنده یک دسته در منو مثل پیش غذاها هست. "MenuItem" رو پیاده سازی میکنه اما جزئیات خاص خود رو نداره. درعوض، فهرستی از مؤلفه‌های فرزند (سایر موارد «MenuItems» که میتونه هم «برگ» و هم دیگر اشیاء «کامپوزیت» باشن رو در خود داره. متد های رابط رو با تکرار از طریق مؤلفه‌های فرزند خود و تفویض تماس به روش‌های مربوطه اجرا میکنه. برای مثال، «getPrice()» قیمت کل رو با جمع کردن قیمت‌های همه اقلام فرزند خود محاسبه میکنه. به صورت کلی این پترن هم مثل پترن های دیگه در شرایط خاص ممکنه کاربردی باشه. برای اطلاعات بیشتر به این مقالات مراجعه کنید: - Article - Article - Article #design_pattern @CodeModule
5 · 1.4K ·

در همان حوالی فید

𔓙𔓙خود خودشه 😂😂😂 #fun @CodeModuleMMahan-Heydariفریم ورک Million.js چیه و چه کاربردی داره؟🧐 🔵فریم ورک Million یک DOM مجازی بسیار سریع و سبکه (<4 کیلوبایت) که اجزای React رو تا 70٪ سریعتر می کنه. که این خیلی ع
این پیام
𔓙𔓙پس لینکدین قابلیت‌های دیگه‌ای هم داره😂 #fun @CodeModule𔓙𔓙تکنیک های بیشتری برای نوشتن یک رزومه خوب یاد بگیر 👾 توی این پست یه ریپازیتوری خوب بهتون معرفی میکنم که تکنیک های رزومه نویسی، که میتونه در ساخت یه رزومه خوب و ا
CCode Module | کد ماژولCode Module | کد ماژول@CodeModule · کانال · فناوری
2 180مشترک594میانگین دسترسی پست
فید انجمن باز کردن در Telegram

فید عمومی باز از ایندکس جست‌وجو ChatCrawler — «Google برای Telegram عمومی»؛ با خزش انجمن به‌روز می‌شود. زمان‌ها به UTC است.

فقط محتوای عمومی، API رسمی Telegram. دربارهٔ ما · پرسش‌ها · محدودیت‌های ایندکس · حذف یک صفحه · کاتالوگ · جست‌وجو · روش محاسبهٔ ما