Memento پترن در جاوا (Memento Pattern in Java)

در این قسمت تیم کدگیت را با آموزش Memento پترن در جاوا همراهی کنید. ابتدا این آموزش را با یادآوری Behavioral Design Pattern آغاز و در ادامه Memento پترن را توضیح می‌دهیم. در انتها، یک مثال را با استفاده از این پترن پیاده سازی خواهیم کرد. پیش نیاز این آموزش شامل موارد زیر است:

  1. شی گرایی در جاوا
  2. متد در جاوا
  3. Constructor در جاوا
  4. This در جاوا
  5. ArrayList در جاوا

Behavioral Design Pattern

یکی از زیر شاخه‌های دیزاین پترن Behavioral Design Pattern می‌باشد. یکی از وظایف اصلی این دیزاین پترن، تعامل اشیا و جداسازی وظایف آنها با یکدیگر است. تعریف کامل Behavioral Design Pattern بدین صورت است که، تمامی اشیا با یکدیگر به راحتی بتوانند ارتباط برقرار کرده، بدون آنکه باعث وابستگی بین آنها شود.

Memento پترن در جاوا

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

Memento پترن در جاوا

مثال Memento پترن در جاوا

برای پیاده سازی پترن Memento به سه بازیگر نیاز داریم. در مثال این جلسه Memento، Originator و CareTaker کلاس‌های ما هستند. کلاس Memento وضعیت شی را نگهداری میکند تا در صورت لزوم بازگردانی شود. کلاس Originator وظیفه ساخت شی و نگهداری آن با استفاده از کلاس Memento را دارد. در آخر وظیفه کلاس CareTaker، بازگردانی وضعیت قبلی به کمک کلاس Memento است. کد کلاس‌های معرفی شده به صورت زیر می‌باشند:

در کلاس Orginator متد saveStateToMemento برای ذخیره وضعیت فعلی در Momento بوده و متد getStateFromMemento برای دریافت وضعیت ذخیره شده استفاده می‌شود.

تست مثال Memento پترن در جاوا

برای تست کدهای بالا، کد Main زیر را بزنید:

همانطور که در کد Main بالا می‌بینید با استفاده از کلاس Orginator چندین State (وضعیت) را ایجاد کرده و نام آنها را State #1 و …. قرار دادیم. بعضی از Stateها را در Memento ذخیره کرده و در آخر با استفاده از کلاس CareTaker وضعیت‌های قبلی را بازگردانی کردیم.

پسورد: www.codegate.ir

 

دسته : design pattern, java, جاوا, دیزاین پترن

دیدگاه بگذارید

نظر شما چیست؟

مطلع کردن شما از
avatar

wpDiscuz