نحوه ایجاد یک کلاس تغییر ناپذیر در جاوا

ساخت وبلاگ

How To Create an Immutable Class in Java

در این مقاله مروری بر نحوه ایجاد یک کلاس تغییر ناپذیر در برنامه نویسی جاوا ارائه شده است.

هنگامی که وضعیت آن پس از شروع اولیه تغییر نکند ، یک شی تغییر ناپذیر است. به عنوان مثال ، رشته یک کلاس تغییر ناپذیر است و پس از آن فوری ، مقدار یک شیء رشته هرگز تغییر نمی کند. درباره اینکه چرا کلاس رشته در جاوا تغییر ناپذیر است ، بیشتر بدانید.

از آنجا که یک شیء تغییر ناپذیر به روز نمی شود ، برنامه ها برای ایجاد یک شیء جدید برای هر تغییر وضعیت نیاز دارند. با این حال ، اشیاء تغییر ناپذیر مزایای زیر را نیز دارند:

  • یک کلاس تغییر ناپذیر برای اهداف ذخیره سازی مناسب است زیرا لازم نیست نگران تغییرات ارزش باشید.
  • یک کلاس غیرقابل تغییر ذاتاً از موضوع امن است ، بنابراین لازم نیست نگران ایمنی موضوع در محیط های چند رشته ای باشید.

ایجاد یک کلاس تغییر ناپذیر در جاوا

برای ایجاد یک کلاس تغییر ناپذیر در جاوا ، باید این اصول کلی را دنبال کنید:

  1. کلاس را به عنوان نهایی اعلام کنید تا نتواند تمدید شود.
  2. همه زمینه ها را خصوصی کنید تا دسترسی مستقیم مجاز نباشد.
  3. روش های تنظیم کننده متغیرها را ارائه ندهید.
  4. تمام زمینه های قابل تغییر را نهایی کنید تا مقدار یک قسمت فقط یک بار اختصاص یابد.
  5. همه زمینه ها را با استفاده از یک روش سازنده با انجام کپی عمیق آغاز کنید.
  6. کلونینگ اشیاء را در روشهای دریافت کننده انجام دهید تا یک نسخه را به جای بازگشت مرجع شیء واقعی برگردانید.

کلاس زیر نمونه ای است که اصول اولیه تغییر ناپذیری را نشان می دهد. کلاس FinalClasSexample زمینه ها را تعریف می کند و روش سازنده ای را که از کپی عمیق برای اولیه سازی شی استفاده می کند ، ارائه می دهد. کد موجود در روش اصلی پرونده نهایی. Java ، تغییر ناپذیری جسم را آزمایش می کند.

یک فایل جدید به نام FinalClassexample. java ایجاد کنید و در کد زیر کپی کنید:

کامپایل و اجرا برنامه:

توجه: ممکن است هنگام تهیه پرونده ، پیام زیر را دریافت کنید: توجه: FinalClasSexample. java از عملیات بدون بررسی یا ناامن استفاده می کند زیرا روش گیرنده از یک بازیگران بدون چک از Hashmap به Object استفاده می کند. می توانید هشدار کامپایلر را برای اهداف این مثال نادیده بگیرید.

خروجی زیر را دریافت می کنید:

خروجی نشان می دهد که مقادیر HashMap تغییر نمی کند زیرا سازنده از کپی عمیق استفاده می کند و عملکرد گیرنده یک کلون از شیء اصلی را برمی گرداند.

چه اتفاقی می افتد که شما از کپی و کلونینگ عمیق استفاده نمی کنید

می توانید در پرونده FinalClassexample. java تغییراتی ایجاد کنید تا نشان دهید چه اتفاقی می افتد هنگام استفاده از کپی کم عمق به جای کپی عمیق و بازگشت شیء یک نسخه. جسم دیگر تغییر ناپذیر نیست و قابل تغییر است. تغییرات زیر را در پرونده مثال ایجاد کنید (یا از مثال کد کپی و چسباندن):

  • روش سازنده را با ارائه کپی عمیق حذف کرده و روش سازنده را با ارائه کپی کم عمق که در مثال زیر برجسته شده است ، اضافه کنید.
  • در عملکرد Getter ، Delete Retu (HashMap) testmap. clone () ؛و اضافه کردن TestMap Retu ؛واد

پرونده مثال اکنون باید به این شکل باشد:

کامپایل و اجرا برنامه:

خروجی زیر را دریافت می کنید:

خروجی نشان می دهد که مقادیر HashMap تغییر یافته است زیرا روش سازنده از کپی کم عمق استفاده می کند ، یک مرجع مستقیم به شیء اصلی در عملکرد گیرنده وجود دارد.

نتیجه

شما برخی از اصول کلی را یاد گرفته اید که هنگام ایجاد کلاس های تغییر ناپذیر در جاوا ، از جمله اهمیت کپی عمیق ، از آنها پیروی کنید. یادگیری خود را با آموزش های بیشتر جاوا ادامه دهید.

اگر از این آموزش و جامعه وسیع ما لذت بردید ، در نظر بگیرید که محصولات دیجیتالی ما را بررسی کنید که می تواند به شما در دستیابی به اهداف توسعه نیز کمک کند.

هنوز به دنبال جواب هستید؟

چه کسی می تواند این را برای من حل کند؟/ * کد را با دنبال کردن مراحل توضیحات */ وارد کردن java. util. hashmap ویرایش کنید. وارد کردن java. util. map ؛مکان کلاس عمومیPublic void addExit (جهت رشته ، مکان int)Public void setLocationId (int locationID)عمومی int getLocationId ()Public void setDescription (توضیحات رشته)رشته عمومی GetDescription ()Public void setExits (خروجی نقشه)نقشه عمومی GetExits ()>کلاس مکان را به یک کلاس تغییر ناپذیر تبدیل کنید. استراتژی ایجاد یک کلاس تغییر ناپذیر: مراحل: 1. تنظیم کننده ها را ارائه ندهید. 2. تمام زمینه ها را نهایی و خصوصی کنید 3. اجازه ندهید که کلاس زیر کلاس باشد. 4- اگر زمینه های نمونه شامل اشاراتی به اشیاء قابل تغییر است ، اجازه ندهید که این اشیاء تغییر کنند: - روش هایی را ارائه ندهید که اشیاء قابل تغییر را تغییر دهند.- منابع مربوط به اشیاء قابل تغییر را به اشتراک نگذارید. به عنوان یک کار اضافه شده ، پرونده ای را که خروجی هنگام انتقال به سازنده تهی است ، انجام دهید. توجه: همه کلاسهای مستند به عنوان "تغییر ناپذیر" از این قوانین پیروی نمی کنند. با این حال ، مراحل فوق اساس یک کلاس تغییر ناپذیر است.

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

برچسب : نویسنده : محبوب امانی بازدید : 47 تاريخ : پنجشنبه 24 فروردين 1402 ساعت: 15:41