دیزاین پترن design pattern یا الگوی طراحی چیست؟

به طور قطع شما در هنگام برنامه نویسی با مسائلی مواجه خواهید شد که بسیار ساده هستند. این مسائل در عین ساده بودن همیشه تکرار می‌شوند. دیزاین پترن ها و یا الگوهای طراحی راه حل‌هایی استاندارد برای این مسائل و مشکلات رایج در طراحی نرم افزارها هستند.

design patterns

شناخت این الگوها باعث ایجاد تفاوت یک برنامه نویس حرفه ای از برنامه نویسان معمولی می‌شود. مهم نیست با چه زبان برنامه نویسی کدنویسی می‌کنید، شناخت و استفاده از این الگوها در طراحی نرم افزارها می‌تواند به شما کمک‌های فراوانی برای تولید و طراحی نرم افزارها کند.

برنامه نویسی و توسعه نرم افزارها در بسیاری از مواقع با مشکلات و سختی‌های کدنویسی زیادی مواجه می شوند که اکثر این مشکلان فارغ از زبان برنامه نویسی هستند. حتی جالب است بدانید که اکثر این چالش‌ها مشابه هم دیگر نیز هستند. طبیعی است که برای رفع این مشکلات مستقل از زبان راه حل‌های زیادی ارائه شود. اما ما به آن راه حلی که به بهترین روش مشکل را مرتفع کند، لقب الگوی طراحی یا design pattern می دهیم.

الگوهای طراحی یا دیزاین پترن ها جزو معماری‌های نرم افزاری نیستند. حتی کد نویسی نیز به حساب نمی آیند!

دیزاین پترن ها به عنوان کد نویسی شناخته نمی شوند، بلکه این الگوها فقط شیوه ای صحیح از کدنویسی شی گرا را ارائه می‌دهند. بنابراین این الگوها فقط در زمینه کدنویسی شی گرا وارد می‌شوند و مستقل از زبان‌های برنامه نویسی هستند.

همان طور که اشاره کردیم یک Design Pattern یک کد کامل و قابل اجرا نیست بلکه رویکردی برای حل یک مسئله است. به عبارت دیگر یک دیزاین پترن، یک کلاس برنامه نویسی یا یک کتابخانه و یا تابعی در برنامه نیست که آن را به کدنویسی خود اضافه کنیم و نتیجه را در خروجی ببنیم. دیزاین پترن یه قالب است که باید در شرایطی درست از آن استفاده کنیم.

یک دیزاین پترن خوب باید قابلیت پیاده سازی روی اکثر زبان های برنامه نویسی (نسبت به قابلیت های آن زبان) را داشته باشد (مستقل از زبان برنامه نویسی).

اگر نیاز به اطلاعات بیشتری درباره انواع زبان‌های برنامه نویسی دارید، مقاله “زبان‌های برنامه نویسی و انواع آن‌ها” را مطالعه کنید.

به این نکته مهم توجه داشته باشید که دیزاین پترن را اگر در جای نادرست استفاده کنیم می تواند فاجعه آمیز باشد. در این صورت مشکلات زیادی را برای پروژه و هندل کردن آن ایجاد می کند. اما اگر در جای درستی استفاده کنیم می تواند به روند پیشرفت پروژه و کدنویسی حرفه‌ای ما کمک های شایانی ارائه دهد.

design pattern

بیان یک مثال الگوی طراحی برای درک بهتر دیزاین پترن

اگر از شما بخواهیم که 500 عدد با مقدار مساوی را با یکدیگر جمع کنید، شما چع راهکاری را در نظر می گیرید؟

اولبن و در دسترس‌ترین راه حل که نیاز به هیچگونه فکری ندارد این است که شما ماشین حساب به دست بگیرید و 500 بار آن عدد را جمع کنید!

قطعا این روش بهترین روش نیست اما شما را به جواب درست می‌رساند. اما رسیدن به جواب درست با این راه حل چالشهای زیادی دارد. از جمله این که امکان ایجاد خطا و اشتباه در محاسبات شما به علت طولانی بودن زیاد می شود. و از طرف دیگر زمان انجام محاسبه بسیار کند خواهد بود!

اما روش دوم که روش عاقلانه تر و به صرفه تریست این است که شما فقط 500 را در عدد مورد نظر ضرب کنید! همین و تمام!

در این روش هم در وقت خود صرفه جویی کرده‌اید و هم درصد خطای خود را پایین‌تر آورده اید و حتی صفر کرده‌اید. پس می‌توانید این روش را به عنوان الگویی در مسائل مشابه در نظر بگیرید و از آن استفاده کنید. در این صورت شما از یک دیزاین پترن استفاده کرده‌اید.

در دنیای برنامه نویسی نیز چنین قانونی حکم فرماست. البته با این تفاوت که کامپیوتر هیچگاه اشتباه محاسباتی نمی کند. کامپیوتر خسته نمی شود و تکرار شدن یک عمل، هیچ تاثیری در دقت او در محاسبات ندارد.

اما زمان انجام محاسبه و مقدار درگیری حافظه و cpu برای اجرای یک کد برای هر برنامه نویسی مهم است. چرا که کارا بودن یک کد در درجه اول به سرعت اجرای آن کد بستگی دارد.

در این مقاله سعی کردیم به صورت مختصر و با مثالها و مفاهیم ساده، الگوی طراحی یا design pattern را به شما آموزش دهیم. یادگیری این مسئله به حرفه‌ای تر شدن شما در دنیای برنامه نویسی بسیار کمک خواهد کرد.

برای نوشتن دیدگاه باید وارد بشوید.
keyboard_arrow_up