تولید کننده آموزش و محصولات مبتنی بر برنامه نویسی مدرن

۱۴ مطلب با کلمه‌ی کلیدی «pattern» ثبت شده است

جمع بندی الگوی های طراحی در c plus plus (به همران لیست آن‌ها )

الگوهای طراحی در c++‎

 

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

 

 

ادامه مطلب...
۱۴ دی ۹۶ ، ۲۰:۰۱ ۰ نظر موافقین ۰ مخالفین ۰
بهنام صباغی

الگوی طراحی Decorator در c plus plus

الگوی طراحی Decorator در c++‎

 

 زمانی مفید است که می خواهید قابلیت (به صورت ایستا یا پویا) را به یک شی اضافه کنید بدون کلاس زیر کلاس کلاس پایه  و همچنین دیگر اشیاء یک کلاس پایه را تحت تاثیر قرار ندهید.
 
مثال ساده :
( کد نسبت به کد موجود در لینک منبع یه دلیل وجود نشت حافظه در کد موجود در لینک اصلاح شد )
ادامه مطلب...
۱۴ دی ۹۶ ، ۲۰:۰۰ ۰ نظر موافقین ۰ مخالفین ۰
بهنام صباغی

لگوی طراحی Composite در c plus plus

الگوی طراحی Composite در c++‎

 

ویژگی‌ها :

 

  • الگوی کامپوزیت زمانی مفید است که شما می خواهید یک گروه از اشیا را به همان شیوه به عنوان یک نمونه واحد از شیء روش کنید. اشیاء گروه بندی شده، خودشان می توانند به شکل Composite در یک درخت باشند.
  • با اشیاء اولیه و ترکیب، به طور یکنواخت رفتار می شود.
  • یک رابط جزئی تعریف شده است و هر دو برگ و همچنین اجزای کامپوزیت آن را به طور یکنواخت اجرا می کنند.
  • در مثال زیر یک پیاده سازی با یک الگوی کامپوزیت تشخیص تلفن نشان داده می شود. یک شی کامپوزیتی با ترکیب تمام اشیاء تشخیص مربوط به گوشی در یک درخت شکل گرفته است. سپس یک آزمایش تشخیصی بر روی شی کامپوزیت است که به نوبه خود تقاضای تمام اشیاء تشخیص را به شیوه ی درخت تقسیم می کند.

کد مثال : 

(کد نسبت به منبع تغییر کرد به دلیل وجود نشت حافظه در کد موجود در اینک منبع )

ادامه مطلب...
۱۳ دی ۹۶ ، ۲۱:۳۰ ۰ نظر موافقین ۰ مخالفین ۰
بهنام صباغی

الگوی طراحی Builder در c plus plus

الگوی طراحی Builder در c++‎

 

ویژگی‌ها :

  • الگوی Builder وقتی استفاده دارد که بخواهید یک شی پیچیده را بسازید . قصد این الگو این است که ساختن شیء را از نمایش آن جدا سازد.
  • ابسترکت ساخت شی و سپس پیاده سازی مشتقات قطعات ساخت و ساز مربوطه را ارائه می‌دهد.
  • مدیر اطمینان می دهد که محصول (شیء پیچیده) به درستی با استفاده از رابط سازنده ایجاد شده و قطعات با سفارش صحیح ساخته شده اند.
  • در زیر نمونه ای از یک پیاده روی با آشپزی چند وعده غذای مختلف را نشان می دهد. غذا را به عنوان یک محصول کامل در نظر بگیرید، به این معنا، نمونه های شناخته شده ای از پیتزا و یا پیچ و خم ها، محصولات بهتر را تولید می کنند (به غذا به عنوان یک محصول مهمتر نگاه کنید ).

 

یک مثال ساده از پیاده سازی الگوریتم Builder در سی پلاس پلاس :

(کد نسبت به منبع اصلاح شد )

 

ادامه مطلب...
۱۳ دی ۹۶ ، ۲۰:۰۰ ۲ نظر موافقین ۰ مخالفین ۰
بهنام صباغی

الگوی طراحی Facade Pattern در c plus plus

الگوی طراحی Facade در c++‎ چیست ؟

  • الگوی طراحی Facade یک الگوی ساختاریست .
  • کتابخانه نرم افزاری پیچیده موجود را با استفاده از رابط کاربری ساده تر برای وظایف رایج آسان می کند.
  • به برنامه ها / کاربران اجازه می دهد تا با استفاده از کتابخانه، از عملکرد درونی یک کتابخانه پیچیده، جدا شوند.

یک مثال ساده از الگوی  Facade :

(کد نسبت به منبع اصلاح شد )

ادامه مطلب...
۱۲ دی ۹۶ ، ۲۱:۳۰ ۴ نظر موافقین ۰ مخالفین ۰
بهنام صباغی

الگوی طراحی visitor Design در c plus plus

الگوی طراحی visitor Design  در c++‎

 

ویژگی‌ها:

  • الگوی visitor یک الگوی رفتاریست .
  • الگوی visitor اجازه می‌دهد تا ساختار داده ها از الگوریتم‌های مورد استفاده جدا در نظر گرفته شوند.
  • هردوی ساختار داده ها و الگوریتم ها میتوانند جداگانه مورد توسعه قرار گیرند ، که توسعه و تغییرات را آسان تر می‌کند.
  • ساختار داده ها یک تابع accept دارد که یک شی visitor (الگوریتم ) ورودی می‌گیرد.
  • اشیار الگوریتم یک تابع visit دارند که یک ساختار داده به عنوان ورودی می‌گیرد.

 یک کد مثال ساده از پیاده سازی الگوی visitor :

(کد نسبت به لینک منبع اصلاح شد به دلیل این که کد در لینک اصلی نشت حافظه داشت )

ادامه مطلب...
۱۲ دی ۹۶ ، ۲۰:۰۰ ۰ نظر موافقین ۰ مخالفین ۰
بهنام صباغی

الگوی طراحی Adapter در c plus plus

الگوی طراحی Adapter در c++‎ چیست ؟

  • این الگو یک الگوی طراحی ساختاریست .
  • همچنین به عنوان الگوی wrapper نیز یاد می‌شود .
  • الگوی طراحی Adapter اجازه میدهد دو کلاس با یکدیگر کار کنند که در حالت عادی به دلیل رابط‌های ناسازگار نمی‌توانند ، با فراهم کردن اینتر فیس برای کلاسها در صورتی که از رابط خودشان نیز استفاده می‌کنند .
  • الگوی adapter فراخوانی رابط خود را به فراخوانی اصلی ترجمه می‌کند .
  • adapter همچنان مسئول تبدیل داده ها به انواع مناسب است .
  • adapter همچنان با ارث بردن از هر دو رابط نیز پیاده سازی می‌شود
  • این معمول است که به عنوان ابسترکت ایجاد شود و به عنوان رابط به ارث برده شود.

یک مثال ساده از الگوی adapter در سی پلاس پلاس :

ادامه مطلب...
۱۱ دی ۹۶ ، ۲۱:۳۰ ۰ نظر موافقین ۰ مخالفین ۰
بهنام صباغی

الگوی طراحی Command در c++

الگوی طراحی Command در c++‎

 

ویژگی ها :

  • الگوی طراحی Command یک الگوی رفتاریست .
  • یک فرمان یا درخواست را محاسبه می‌کند ، فرمان را به عنوان یک شی در نظر می‌گیرد .
  • کلاس های شرکت کننده در الگوی Command عبارتند از :
    • کلاس Command : یک کلاس ابسترک که اینترفیس تابع اجرا (execute ) را فراهم می‌کند .
    • کلاس Concrete Commands: از کلاس Command به ارث می‌برد و تابع اجرا (execute) را پیاده سازی می‌کند و دستور را روی شی گیرنده اجرا می‌کند .
    • کلاس Receiver : میداند چگونه عمل فرمان را انجام دهد .
    • کلاس Invoker : از شی command میخواهد تا دستور انجام دهد .
    • کلاس Client : دستورات و همکاران و گیرنده را ایجاد می‌کند .
  • چند مثال :
    • وقتی استفاده می‌شود که تاریخچه دستورات مورد نیاز است .
    • پردازش ناهمگام . نیاز است دستورات در زمان های مختلف اجرا شوند .
    • مراحل نصب

کد زیر یک مثال ساده از الگوی Command را نشان می‌دهد :

ادامه مطلب...
۱۱ دی ۹۶ ، ۲۰:۰۷ ۰ نظر موافقین ۰ مخالفین ۰
بهنام صباغی

الگوی طراحی Chain of Responsibility در c plus plus

  الگوی طراحی Chain of Responsibility در c++‎

  • ایده اصلی پشت این طراحی برای زمانیست که یک درخواست یا دستور از چندین شی عبور کند تا زمانی که انجام شود .
  • اشیای درگیر در این الگو دو نوع هستند ، اشیای پردازش و اشیای دستوری
  • اشیای پردازشی دستوری که اشیای دستوری داده اند را انجام می‌دهند .
  • هر شی پردازشی میداند که چه چیزی را میتواند انجام دهد و دستور را به شی بعدی در حلقه می‌فرستد اگر دستور انجام نشده باشد (زنجیره به پایان نرسیده باشد )
  • یک مثال برای درک بهتر این الگو مکانیسم مدیریت استثناهای سی پلاس پلاس است . استثنای حل نشده در پشته تماس بالا می‌رود تا کسی بر آن عمل کند .

کد مثال :

ادامه مطلب...
۱۰ دی ۹۶ ، ۲۰:۱۹ ۰ نظر موافقین ۰ مخالفین ۰
بهنام صباغی

الگوی طراحی Template در c plus plus

الگوی طراحی قالب (C++‎ Template Design Pattern)

 

ویژگی های Template Design

  • الگوی طراحی Template  یک الگوی رفتاریست .
  • هیچ ارتباطی به Template های سی پلاس پلاس ندارد
  • الگوی Template یک الگوی رایج در برنامه نویسی شی گراست داشتن یک کلاس ابسترکت (که یک یا چند تابع مجازی خالص دارند ) یک مثال ساده از الگوی طراحی تمپلیت است .
  • در الگوی طراحی Template بخش هایی از برنامه که به خوبی تعریف شده اند مثل یک الگوریتم در کلاس پایه به عنوان یک تابع غیر مجازی تعریف می‌شوند و بقیه قسمت ها در کلاس بیس مجازی تعریف می‌شود و پیاده سازی آن‌ها در کلاس های نشات گرفته انجام می‌شود.
  • به تابعی که الگوریتم در ان پیاده سازی شده تابع Template  گفته می‌شود و به کلاس پایه که این تابع را در بر دارد Template  گفته می‌شود .

کد زیر کاربرد الگوی طراحی Template را نشان می‌دهد :

ادامه مطلب...
۱۰ دی ۹۶ ، ۱۹:۲۷ ۰ نظر موافقین ۰ مخالفین ۰
بهنام صباغی