در مقاله دیزاین پترن چیست با دیزاین پترن ها آشنا شدیم، و در این مقاله معروفترین و پرکاربردترین دیزاین پترن هایGOF را به شما معرفی می کنیم.
تعداد 23 دیزاین پترن در سه دسته بندی ساختاری، ایجادی، رفتاری معرفی شدند. اما به ندرت پیش می آید که در یک پروژه از اکثر این دیزاین پترن ها با هم استفاده کنیم.
تعدادی از این دیزاین پترن ها کاربرد های خاصی دارند که کمتر استفاده می شوند و شاید شما هیچوقت تعدادی از این دیزاین پترن ها را استفاده نکنید. اما در مقابل تعدادی دیگر از این دیزاین پترن ها بشدت پرکاربرد هستند و شاید در اکثر پروژه ها مجبور باشید از این دیزاین پترن ها استفاده کنید.
تمام 23 دیزاین پترن بصورت کامل در دوره آموزش دیزاین پترن ها در سایت ارائه شده است.
در ادامه 7 دیزاین پترن معروف و پرکاربرد را به شما معرفی می کنیم.
الگوی Facade یا نمای بیرونی در دسته الگوی های ساختاری (Structural Patterns) قرار دارد.
الگوی facade به عنوان یک واسط بین زیرسیستم ها و کلاینت قرار دارد.Facade یک واسط سطح بالایی را تعریف می کند که استفاده از زیرسیستم را آسان تر می کند. به عبارت دیگر خلاصه سازی، و متمرکز سازی واسط یک سیستم شلوغ و پیچیده متشکل از تعداد زیادی کلاس و زیر سیستم به یک واسط سبک، ساده و سطح بالا.
به اینصورت با استفاده از الگوی Facade ارتباط ساب سیستم ها با کلاینت قطع میشه و ارتباط سست بین اونها برقرار میشه.
2- دیزاین پترن Adapter
دیزاین پترن آداپتر یک دیزاین پترن از نوع ساختاری است.
با استفاده از این دیزاین پترن ما میتوانیم از کلاس هایی که واسط متفاوتی با برنامه ما دارند استفاده کنیم، یعنی به دو رابط ناسازگار اجازه میدهد تا بتوانند با هم کار کنند.
3- دیزاین پترن Factory Method
الگوی طراحی کارخانه در دسته الگوهای سازنده قرار دارد و به شما در مدیریت ایجاد اشیا کمک میکند. این الگوی طراحی، راهکاری در اختیار برنامه نویسان قرار میدهد تا آنها را قادر سازد که بدون اینکه کلاس دقیق یک شی را مشخص کنند آن را ایجاد کنند و به استفاده از آن بپردازند.
دیزاین پترن Factory با ایجاد اشیاء بدون مشخصکردن کلاس اشیاء خاصی که قرار است ساخته شوند ایجاد شده است.
4- دیزاین پترن Iterator
این دیزاین پترن یکی از قدیمی ترین الگوها است وکار این الگو پیمایش لیستی از اشیاء است بدون نیاز به افشاءکردن کل مجموعه.
زمانی که ما مجموعه ای از اشیاءرو در کنار هم قرار می دهیم باید نحوی پیمایش را مشخص کنیم که کلاینت ما بتوتند به راحتی آن را پیمایش کند وپردازش مورد نیازش را انجام بدهد.
در iteration ما نیاز به ساختاری داریم که object فعلی رو نگهداریم و در عین حال بدا نیم object بعدی یا قبلی (و نه کل مجموعه) چیه. در حقیقت Iterator زمانی استفاده میشود که میخواهیم در چرخه یا روند به اجزای یک مجموعه دسترسی داشته باشیم.
5- دیزاین پترن strategy
این الگوی یکی از پرکاربردترین دیزاین پترن ها است و این امکان را می دهد که ما بتوانیم الگوریتم های دینامیک را درون یک کلاس بفرستیم.
الگوی strategy این امکان را میدهد تا الگوریتم ها بر اساس موقعیت و شرایط متفاوت تغییر کنند.در این الگو خانوادهای از الگوریتم ها را تعریف میکنیم و هر یک را در کلاس جداگانه و مستقل قرار میدهیم تا قابل انتخاب یا تعویض باشند.
6- دیزاین پترن Composite
الگوی Composite کمک میکند تا بتونیم اشیاء را بصورت سلسله مراتبی یا ساختار درختی داشته باشیم. این الگو اجازه میدهد تا بتونیم ساختار درختی داشته باشیم و بتوانیم به هر عضو از درخت تسکی بدهیم. در حقیقت وقتی میخواهیم با گروهی از اشیاء کار داشته باشیم یا آنها را یک شئ واحد ببینیم این الگو کبه ما کمک می کند.
7- دیزاین پترن Decorator
الگوی Decorator یا آذینگرالگویی است که کمک میکنه که بدون تغییر در ساختار یه شئ، بتوانیم تغییراتی اعمال و یا عملکردی به آن اضافه کنیم.این الگو به ما کمک میکند که بصورت داینامیک، عملکردها و رفتارهایی رو که میخواهیم به یک شئ اعمال کنیم، بدون اینکه به ساختار کلاس و سایر اشیائ ساخته شده از همان کلاس کاری داشته باشیم.
در این مقاله به هفت تا از معروف ترین الگوهای طراحی که در برنامه نویسی بیشترین استفاده را دارند پرداختیم .