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

۶۲ مطلب با موضوع «اموزش :: CPP» ثبت شده است

الگوی طراحی 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 را نشان می‌دهد :

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

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

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

  • الگوی Observer یک الگوی رفتاریست .
  • الگوی Observer برای بروز رسانی و همگام سازی چندین شی با یک تغییر است مانند مفهوم Model-View-Controller (MVC)
  • مفید برای پیاده سازی سناریوهای رویداد محور و مدیریت رویداد
  • دو کلاس درگیر هستند .
  • Observable کلاس که تغییر واقعی در آن ایجاد می‌شود و از کلاسهایی که باید از تغییرات مطلع شوند خبر دارد .
  • Observer یک کلاس ابسترکت است که اینترفیس مورد نیاز برای کلاس هایی که باید از تغییرات مطلع شوند را فراهم می‌کند .

کد موجود در لینک منبع :

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

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

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

  • الگوی طراحی Factory Pattern یک الگوی خلاقانه است .
  • ایده و هدف Factory Pattern محلی سازی ساخت شی است .
  • این از مزاحمت سیستم ورودی برای معرفی نوع جدید جلوگیری می‌کند.
  • معمولا وقتی نوع جدیدی معرفی می‌شود فقط یک مکان از کد تغییر می‌کند جایی که شی ساخته شده تا تصمیم بگیرید کدام کانستراکتور را فراخوانی کند
  • ساده ترین راه تعریف یک تابع استاتیک در کلاسه پایه است که شی مورد نیاز را بر اساس نوع ایجاد می‌کند .
  • نوع دیگر Abstract Factory است .
  • کلاس های واقعی جدا شده هستند .
  • کلاینت حتی نمی‌داند کدام کلاس نیازش را برطرف می‌کند .

کد مثال نوع استاتیک :

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

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

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

  • Singleton یک الگوی طراحی خلاقانه است .
  • الگوی طراحی برای ارائه یک نمونه تنها از یک شی.
  • ساخت سازنده کلاس به صورت خصوصی
  • ساخت شی را خصوصی نگه دارید .
  • دسترسی عمومی به صورت پابلیک توسط یک تابع ایجاد کنید
  • توانایی گسترش برای ایجاد یک استخر (pool) از اشیا

پروژه نمونه :

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

هزار و یک نکته در سی پلاس پلاس نکته دوم (اعضای استاتیک و ارث بری )

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

خب اجازه بدهید یا یک تکه کد این مورد را بررسی کنیم

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

هزار و یک نکته در سی پلاس پلاس نکته اول (وکتور و اسمارت پوینتر ها )

خب دوستان تصمیم دارم در سی پست های هزار و یک نکته در سی پلاس پلاس براتون نکات جالبی که بر میخورم توی مطالعات یا کارهایی که انجام میدم بر اساس تجربه شخصیم رو منتشر کنم .

 

همونطور که میدونید وقتی یک وکتور درست میکنیم برامون یک آرایه درست میکنه و وقتی عنصری بهش اضافه میکنیم اگر از ظرفیتش بزنیم بالا یعنی ارایه ای که درست کرده پر شده باشه و بخوایم عضو جدید اضافه کنیم میاد یک ارایه با اندازه یکی بزرگ تر از ارایه قبلی درست میکنه و تمام عناصر قبلی رو کپی میکنه توی ارایه جدید و بعد عنصری که میخوایم اضافه کنیم رو هم اضافه میکنه و این برای اضافه یا حذف کردن هر عضو انجام میشه مگر این که یه تعداد مشخص رو براش رزرو کنیم مثلا 100 تا ولی باز از 100 که بزنیم بالا جریان همونه خب حالا این حذف و کپی که انجام میشه برامون خیلی هزینه داره از طرفی اگر کانستراکتور داشته باشیم برای کلاسی که ازش وکتور ساخنیم این برامون خیلی هزینش بیشتر میشه من داشتم یه چیزی رو تست میکردم برام جالب بود و اونم اینه که مثلا بجای این که بیام یک وکتور از کلاس Test درست کنم بجاش اومدم یک وکتور از یونیک پی تی ار استفاده کردم دیگه دیستراکتو ها و کانستراکتور ها فراخوانی نشد و برای ریختن اشاره گرهام توی وکتور هم از move استفاده کردم اینجا یه کد کوچیک میذارم که خودتون هم تست کنید :

 

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

آماده سازی سیستم برای گرفتن خروجی اندروید با کیوت روی لینوکس اوبونتو

با سلام خدمت دوستان عزیز

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

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

آپدیت : یکی از دوستان زحمت کشیده آموزش آماده سازی پیش‌نیازها برای خورجی اندروید با کیوت روی ویندوز رو هم آموزش داده و میتونید از لینک زیر دانلود کنید :

دانلود آماده سازی پیش‌نیاز‌های خروجی ادروید روی ویندوز

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