خانه مهندسی نرم افزار دیزاین پترن چیست؟ مهندسی نرم افزار شی گرایی نوشته شده توسط: فاطمه نجفی مقدم تاریخ انتشار: ۱۳ بهمن ۱۴۰۰ آخرین بروزرسانی: ۰۹ مهر ۱۴۰۲ زمان مطالعه: 10 دقیقه ۳ (۳) دیزاین پترن ها را میشود یک نوع الگو طراحی در برنامه نویسی تعریف کرد. الگو طراحی چیست؟ الگو طراحی یا دیزاین پترن ها راه حلی مناسب برای مشکلات رایج در طراحی نرم افزار هستند شناخت این الگو ها و به کار بردن آن ها در برنامه باعث تمایز یک برنامه نویس حرفه ایی از یک برنامه نویس معمولی میشود. در طول زمان برنامه نویسان برای توسعه نرم افزار ها با مشکلات زیادی مواجه می شدند برای حل این مشکلات راه حل های زیادی مطرح میشد اما استفاده از دیزاین پترن ها بهترین روش برای حل این نوع از مشکلات بود . لازم به ذکر است که الگو های طراحی مستقل از زبان های برنامه نویسی هستند و فقط در قلمرو برنامه نویسی شی گرا وارد می شوند تاریخچه الگو های طراحی الگوهای طراحی برای اولین بار توسط یک گروه ۴ نفره به نام GOF معرفی شدند. این گروه الگوهای طراحی را از نظر کاربرد در قالب کتابی منتشر کردند این گروه به معرفی ۲۳ تا از الگوهای طراحی پرداختند و این ۲۳ الگو را به سه دسته الگوهای ایجادی الگوهای ساختاری و الگوهای رفتاری قرار دادند. سه دسته کلی از دیزاین پترن ها: Creational Design Patterns Structural Design Patterns Behavioral Design Patterns الگوهای ساختاری این دیزاین پترن برای مدیریت ارتباط میان کلاس ها و شی ها با یکدیگر استفاده می شود در واقع به ما میگن که سازماندهی درون یک آبجکت به چه شکلی باشه چه پراپرتی های داشته باشه و ساختارشو برامون تشریح میکنه. این الگو های طراحی عبارت اند از: Adapter Decorator Facade Bridge Composite Flyweight Proxy الگوهای سازنده این الگو طراحی برای حل مشکلات مربوط به ایجاد اشیا در نرم افزار ارئه میشود و ما را در ساخت آبجکت راهنمایی میکند و در واقع بهمون میگه که چطور آبجکت بسازیم. دیزاین پترن های سازنده عبارت اند از: Singleton Factory Method Prototype Abstract Factory Builder Object Pool الگوهای رفتاری این پترن ها مربوط به تعامل و ارتباط اشیا هستند و در واقع رفتار و کردار یک آبجکت و کلاس رو برامون تشریح میکند. و عبارت اند از: Chain of responsibility Strategy Iterator Command Mediator Memento Observer State Template Method Visitor در ادامه میخواهیم بعضی از دیزاین پترن ها را با ارائه مثال توضیح بدم تا شما با الگوهای طراحی بیشتر آشنا بشید. مثال های الگو های طراحی ترجیحا در قالب زبان سویفت است. با توجه به اینکه بحث دیزاین پترن ها یکی از مباحثی که در قالب یه مقاله نمیتوان به همه نکات و جزئیات آن اشاره کرد امیدوارم خواندن این مطلب گامی باشه تا شما به دنبال اطلاعات بیشتری راجب این الگوهای طراحی باشید. ۱. Singleton این الگو یکی از مهم ترین الگوهاست و مشکلات زیادی را هم حل کرده است و هدف اصلی آن این است که در هر لحظه بیش از یک آبجکت از یک کلاس وجود نداشته باشد مثلا اپلیکیشن . هر اپ یه دونه اپلیکیشن است و میتونیم یک آبجکت ثابت داشته باشیم و همه اطلاعات رو در سراسر اجرای برنامه در یک اپلیکیشن واحد داشته باشیم . این آبجکت ها نباید قابل نمونه سازی یا ارث بری باشند چون میخواهیم فقط یه دونه از این آبجکت ها در اپ باشد . در سویفت از این آبجکت ها داریم مثلا : UIApplication , UIScreen , Notification Center ,… این آبجکت ها در کل اپ فقط یک بار ساخته میشن و تا آخر اجرای اپ هم همیشه زنده میمونن به طور مثال هر اپ فقط یک اپلیکیشن هستش یا فقط یک اسکرین دارد و … ۲. Observer میخواهیم بعضی از آبجکت ها تغییرات آبجکت های دیگر را دنبال کنند یعنی اگر تغییراتی در یک آبجکت دیگر داده شود متوجه شوند و کار دیگری انجام دهند. این الگو از دو نوع آبجکت تشکیل شده است Observable و Observer که یکی Event تولید میکند و یکی به Event ها پاسخ می دهد. هرگاه وضعیت آبجکت Observable تغییر کند تمام آبجکت های Observer ثبت شده در آبجکت خود را فراخوانی می کند و می گوید وضعیت من تغییر کرده است. در سویفت KVO است که اجازه میده اشیا از تغییر وضعیت یک شی دیگر مطلع شوند. وقتی نتوانیم به هر دلیلی یک کد را ویرایش یا ریفکتور کنیم و اگر بخواهیم متدی به این کلاس اضافه کنیم از این الگو استفاده میکنیم. و یکی از کاربردهای آن رفع مشکل ارث بری کلاس از تنها یک کلاس است. ۴. Facada نقش یک واسط را دارد. یکی از کاربردهای ان زمانی است که میخواهیم قبل از ارسال داده ها پردازش هایی روی ان ها انجام دهیم. ۵. Adaptor مسئول تطبیق برنامه با API سایر برنامه ها است مثلا یک آبجکت می سازیم و آن را به متدهای یک آبجکت دیگر تبدیل می کنیم . به طور مثال فرض کنید دو کلاس را که در شرایط مختلف کارهای مختلف انجام میدهند را با هم مرج کنیم . این کلاس ها به شدت در جاهای مختلف برنامه استفاده شدن پس حذف آن ها مشکل است و هم چنین نمیتوانیم یک کلاس را به جای آن دو کلاس بنویسیم و همه جای برنامه مه از این دو کلاس استفاده شده بود رو تغییر بدیم هم چنین این تغییرات مسبب آن میشود که همه بخش های سیستم را دوباره تست کنیم و در نهایت ممکنه کلی مشکل و باگ به وجود بیاد. به جای این کارهای میتوانیم از دو الگوی استرانژی و آداپتر استفاده کنیم که این مسئله رو به راحتی حل میکند. مزایای استفاده از دیزاین پترن ها دیزاین پترن ها با استفاده درست از اصول برنامه نویسی شی گرا مزایا زیادی را در اختیار برنامه نویسان قرار میدهند که به مواردی در زیر اشاره می شود: Scalability Expandability Flexibility افزایش سرعت توسعه نرم افزار کاهش خطاها و مشکلات کاهش میزان کد نویسی نتیجه گیری شناخت مفاهیم الگوهای طراحی برای همه برنامه نویسان یک امر ضروری است زیرا الگوهای طراحی با هدف رفع مشکلات رایج در کد نویسی و استاندارد ساختن فرآیند توسعه نرم افزار ارائه شده اند. برنامه نویسان با به کارگیری الگوهای طراحی میتوانند نرم افزار هایی با مزیت های که در بالا به ان اشاره شده توسعه دهند . به این نکته مهم توجه داشته باشید که دیزاین پترن مثل چاقوی دو لبه است اگر در جای نادرست استفاده شود میتواند باعث بروز مشکلاتی برای پروژه شود ولی اگر در جای درستی استفاده شود میتواند باعث نجات برنامه نویسان و توسعه دهندگان از مشکلاتی پیش رو گردد. چه رتبه ای میدهید؟ میانگین ۳ / ۵. از مجموع ۳ اولین نفر باش دانلود مقاله دیزاین پترن چیست؟ فرمت PDF 6 صفحه حجم 1 مگابایت دانلود مقاله معرفی نویسنده مقالات 1 مقاله توسط این نویسنده محصولات 0 دوره توسط این نویسنده فاطمه نجفی مقدم معرفی محصول علیرضا ارومند دوره Full Stack .NET Developer 3.900.000 تومان مقالات مرتبط ۰۷ فروردین مهندسی نرم افزار تفاوت DDD، میکروسرویس (Microservice)، الگوهای طراحی (Design pattern) و معماری تمیز (Clean Architecture) تیم فنی نیک آموز ۰۳ اسفند مهندسی نرم افزار آشنایی با تفاوت Domain Events و Integration Events تیم فنی نیک آموز ۲۶ بهمن مهندسی نرم افزار ۵ راز ساخت سیستم قدرتمند با پیاده سازی معماری میکروسرویس : چالش ها و راه حل ها تیم فنی نیک آموز ۰۵ دی مهندسی نرم افزار راهنمای مسیر شغلی معمار ارشد نرم افزار تیم فنی نیک آموز دیدگاه کاربران لغو پاسخ دیدگاه نام و نام خانوادگی ایمیل ذخیره نام، ایمیل و وبسایت من در مرورگر برای زمانی که دوباره دیدگاهی مینویسم. موبایل برای اطلاع از پاسخ لطفاً مرا با خبر کن ثبت دیدگاه Δ