ChatCrawlersearch across public Telegram Open the app
ن

نودجی اس | Nodejs | NestJS | javascript | جاوااسکریپت | typescript

сообщение · 2024-07-24 16:18 UTC
G
با این پترن پل درست کنید! 🦦 پترن 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
1.2K ·

Вся лента · оригинал в Telegram

Open in Telegram Каталог площадок Искать в ChatCrawler

A snapshot of an open public feed from the search index ChatCrawler — “Google for public Telegram”; refreshed as the venue is crawled. Times are UTC.

Public content only, official Telegram API. About · FAQ · What we do not do · Remove a page · Catalog