آموزش ها

strategy pattern

توسط احد

ارسال شده در تاریخ ۰۳ مهر,۱۳۹۶



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

ادامه مطلب

Singleton Pattern

توسط احد

ارسال شده در تاریخ ۰۱ مهر,۱۳۹۶



در این آموزش یاد می گیرید که چگونه الگوی طراحی Singleton را پیاده سازی کنید و چرا و چه زمانی از این الگوی طراحی در اپلیکیشن خود استفاده کنید. همانطور که از نام Singleton می توان فهمید توسط این متد می توان که یک و تنها یک نمونه از کلاس داشت.

ادامه مطلب

Decorator Pattern

توسط احد

ارسال شده در تاریخ ۲۵ بهمن,۱۳۹۵



ما از این الگوی طراحی زمانی استفاده می کنیم که می خواهیم مسئولیت هایی را به کلاس پایه اضافه کنیم، اما نمی خواهیم کد کلاس پایه را دستکاری کنیم. اگر فکر می کنید که با sub-class ها می توانید به ویژگی های اضافه برسیم، به کدهای زیر توجه داشته باشید.

ما یک کلاس داریم که مسئولیت تولید محتوی یک ایمیل را بر عهده دارد.

ادامه مطلب

Factory Pattern

توسط احد

ارسال شده در تاریخ ۲۲ بهمن,۱۳۹۵



در این بخش ما می خواهیم در مورد ایجاد اشیا توسط الگوی طراحی factory صحبت کنیم. اغلب ما می خواهیم بصورت کامل با انواع مختلف اشیا در راه های یکسان تعامل برقرار کنیم. یک مثال قوی اتصال به دیتابیس می باشد. ما می خواهیم قابلیت اتصال به دیتابیس را بدون در نظر گرفتن اینکه MySQL، Oracle یا SQL server باشد توسط روش یکسانی داشته باشیم. این ممکن است کمی مشکل باشد، زیرا ایجاد Object های مختلف ممکن است متفاوت باشد. ما به راهی نیاز داریم که جزئیات پیاده سازی ایجاد اشیا را مخفی کنیم و به ما اجازه بدهد تا شی مورد نظر را بسازیم که این دقیقا کاری است که الگوی طراحی factory برای ما انجام می دهد. این الگو اغلب توسط الگوهای دیگر استفاده می شود، جایی که می خواهید با اشیا مختلف دقیقا توسط یک راه یکسان تعامل برقرار کنید.

ادامه مطلب

Adapter Pattern

توسط احد

ارسال شده در تاریخ ۲۱ بهمن,۱۳۹۵



ما سیستم خود را می سازیم، اما بخش های مختلف شبیه به هم نیستند. یک component داریم که به سه ورودی نیاز دارد با type های خاص و یک component دیگر داریم که به دو ورودی با type های خاص نیاز دارد. اولین فکری که به ذهنمان می رسد این است که بصورت جداگانه از این component ها استفاده کنیم و ورودی های مورد نیاز آن ها را تنظیم کنیم. اما این ایده خوبی نیست، بهتر است بگوییم این ایده وحشتناک است. برای حل این مشکل به یک لایه مترجم یا به اصطلاح translation احتیاج داریم و اینجا جایی است که الگوی Adapter مطرح می شود.

شبیه به یک translation layer یا لایه مترجم عمل می کند. Adapter در دنیای واقعی نیز وجود دارد. هنگامی که می خواهیم لپ تاپ خود را به projector وصل کنیم، بیشتر projector ها تنها ورودی VGA دارند، در حالیکه بیشتر لپ تاپ ها یک اتصال دیگری دارند، بنابراین برای استفاده از projector نیاز به یک Adapter داریم که اتصال را از یک فرمت به فرمت دیگری تبدیل کند.

با پیاده سازی الگوی طراحی Adapter، ما می توانیم با خیال راحت با کلاس های خارجی یا کتابخانه های خارجی و API ها کار کنیم.

ادامه مطلب