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

پست با این پترن پل درست کنید! 🦦

24 ژوئیه 2024
/
/ᵍ
با این پترن پل درست کنید! 🦦 پترن Bridge یک دیزاین پترن Structural و جزو 23 الگو GoF هست، که در مهندسی نرم‌افزار استفاده میشه و به معنای جدا کردن یک انتزاع از اجرای اون می‌باشد به طوری که این دو میتونن به طور مستقل، متفاوت باشن. به عبارت دیگه الگوی Bridge یک انتزاع (what) را از اجرای اون (how) جدا میکنه. این جدا سازی باعث ترویج: 🟠انعطاف پذیری: به راحتی با افزودن پیاده سازی های جدید سازگار میشه. 🟠قابلیت نگهداری: انتزاع یا پیاده سازی ها رو به طور مستقل تغییر میده. 🟠قابلیت استفاده مجدد: انتزاعات به خوبی تعریف شده استفاده مجدد از کد رو ترویج میکنن. 🟠تست پذیری: تمرکز بر رفتار انتزاعی، تست رو ساده میکنه. برای اینکه بهتر این پترن رو درک کنید، مثال زیر رو بخونید: به کلید و پریز تو اتاقتون نگاه کنید. خود کلید (انتزاع) یک راه استاندارد برای روشن یا خاموش کردن لامپ (operations) ارائه میده. با این حال، سیم کشی برق و نوع لامپ (implementation) میتونه بسته به محل (location) و محل نصب متفاوت باشه. شما میتونید یک لامپ (implementation) رو بدون تأثیر بر نحوه استفاده از کلید (انتزاع) تعویض کنید. به طور مشابه، انواع مختلف کلید ها (اجرا با مکانیزم های مختلف) رو میشه با یک لامپ ثابت (انتزاعی) استفاده کرد. این پترن چه مشکلاتی رو حل کنه؟ منبع فرض کنید یک کلاس Shape با دو کلاسی که از اون ارث میبرن به اسم های Circle و Square دارید. شما میخواید این سلسله مراتب کلاس رو برای ترکیب رنگ ها گسترش بدین، بنابراین قصد دارید ساب کلاس های شکل قرمز و آبی بسازین. با این حال، از اونجایی که شما در حال حاضر دو کلاس فرعی دارید، باید چند کلاس مانند BlueCircle و RedSquare نیز بسازید. (خسته کننده هست😶‍🌫️) افزودن انواع شکل ها و رنگ های جدید سلسله مراتب اون رو به صورت تصاعدی رشد میده. به عنوان مثال، برای اضافه کردن یک شکل مثلث، باید دو زیر کلاس جدید معرفی کنین، و هر چه جلوتر میریم بدتر میشه. اینجا هست که پترن Bridge به کمکون میاد. پترن Bridge چجوری کمک میکنه؟ الگوی Bridge سعی میکنه این مشکل رو با تغییر از وراثت به composition حل کنه. به این معنی هست که به جای اینکه تمامی ابعاد و رفتارها در یک سلسله مراتب کلاس واحد نگهداری بشن، این الگو میاد یکی از ابعاد رو به صورت جداگانه در یک سلسله مراتب کلاس مستقل استخراج میکنه. به این ترتیب، کلاس‌های اصلی به جای اینکه تمام وضعیت‌ها و رفتارها رو در خود داشته باشن، به یک شی از سلسله مراتب جدید ارجاع میدن. به صورت کلی پترن Bridge به شما این امکان رو میده که بتونید تغییرات رو به راحتی مدیریت کرده و از کد خود به طور مؤثری استفاده مجدد کنید. برای کسب اطلاعات بیشتر در مورد این پترن، به مقالات زیر مراجعه کنید. - Article - Article - Article #design_pattern @CodeModule
13 · 1.2K ·

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

𔓙𔓙سوالات مصاحبه ای شرکت های بزرگ 🦦 استخدام شدن در یک شرکت بزرگ برنامه نویسی کار بسیار پر چالش و سختیه. دلیلش هم اینه که اونا به دنبال کسی هستن که بتونه، الگوریتم‌//ᵍرم مارو جوییدی آقا بسه ! 😂😂 پ.ن : بنظر شما بهترین بروزر چیه و چرا ؟ #fun @CodeModule
این پیام
MMahan-Heydariبا Reflect در جاوااسکریپت بیشتر آشنا بشید ✌️ آبجکت یا شئ Reflect، شامل متدهای استاتیک برای فراخوانی متدهای داخلی interceptable اشیاء جاوااسکریپته. برخلاف اکثر گ𔓙𔓙دورهمی های کدماژول، قسمت سوم موضوع: همه چیز راجب لینکدین 🌐 به جرات میتونیم بگیم که «ارتباط»‌ یکی از مهم‌ترین فاکتور‌های موفقیت در دنیای امروز و برنامه نویسی هست
CCode Module | کد ماژولCode Module | کد ماژول@CodeModule · کانال · فناوری
2 180مشترک594میانگین دسترسی پست
فید انجمن باز کردن در Telegram

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

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