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

در این قسمت تیم کدگیت را با آموزش Iterator پترن در جاوا همراهی کنید. ابتدا Iterator پترن را توضیح داده و سپس با پیاده سازی مثالی واقعی، این آموزش را پایان می‌بریم. پیش نیاز این آموزش، شامل موارد زیر است:

  1. شی گرایی در جاوا
  2. Interface در جاوا
  3. متد در جاوا
  4. Constructor در جاوا
  5. This در جاوا
  6. کلاس تودرتو در جاوا

Behavioral Design Pattern

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

Iterator پترن در جاوا

Iterator پترن یکی از معروف‌ترین و پر استفاده‌ترین پترنها است که در زبانهای جاوا و .net استفاده می‌شود. Iterator پترن یک روشی برای دسترسی مجموعه ای از اشیا هم جنس و پشت سر هم (مانند لیست پیوندی) است بدون آنکه درگیر جزییات (مانند نحوه اتصال اشیا به هم و ….) شویم.ما در آموزشهایی همچون لیست پیوندی در جاوا، BFS و DFS در جاوا از این پترن استفاده کردیم.

Iterator پترن در جاوا

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

مثالی که می‌خواهیم پیاده سازی کنیم بسیار ساده می‌باشد. کلاسی داریم که مجموعه‌ای از اسامی را در خود ذخیره می‌کند. در این کلاس یک Iterator پترن را پیاده سازی می‌کنیم به طوری که اسامی که در این کلاس وجود دارد برای ما به ترتیب برگرداند. برای این کار دو Interface به نام Iterator و Container را می‌سازیم. کلاس NameRepository، کلاسی است که اسامی ما را در خود ذخیره می‌کند. کلاس NameIterator یک Iterator برای کلاس NameRepository است. کد کلاس‌ها و Interfaceهای توضیح داده شده به صورت زیر می‌باشد:

کلاس NameIterator به صورت کلاس تودرتو نوشته‌ایم و همچنین این کلاس، Iterator را Implements کرده است. در آخر توجه داشته باشید Container متدی در خود دارد برای بازگردانی شی از جنس Iterator و در کلاس NameRepository از این Interface استفاده کردیم.

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

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

خروجی کد بالا به صورت زیر می‌باشد:

پسورد: www.codegate.ir

 

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

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

نظر شما چیست؟

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

wpDiscuz