برنامه نویسی
مورد 87: به احتمال استفاده از یک فرم سریال سفارشی فکر کنید

1. مشکل فرم سریالی پیش فرض
- فرم سریالی استاندارد می تواند جایگزینی یک اجرای یکبار مصرف را غیرممکن کند.
- بسیاری از کلاس های کتابخانه جاوا ، مانند Biginteger ، از این محدودیت رنج می برد.
- باید ارزیابی کرد که آیا فرم سریال استاندارد از نظر انعطاف پذیری ، عملکرد و تصحیح مناسب است یا خیر.
2. چه زمانی شکل سریالی استاندارد قابل قبول است؟
- هنگامی که بازنمایی فیزیکی شی با محتوای منطقی آن یکسان است.
- مثال: یک کلاس نام با سه رشته (نام خانوادگی ، نام و نام میانی).
3. مشکلات هنگام استفاده از فرم سریال استاندارد هنگامی که بازنمایی فیزیکی با محتوای منطقی متفاوت است
- این برنامه API عمومی را به اجرای داخلی وصل می کند و از تغییرات آینده جلوگیری می کند.
- مصرف فضا را افزایش می دهد و جزئیات غیر ضروری را ذخیره می کند.
- به دلیل مسیرهای غیر ضروری در نمودار شی می تواند در زمان اجرای ناکارآمد باشد.
- این می تواند باعث سرریز باتری شود ، به خصوص در لیست های بزرگ ذکر شده.
4. مثال: سریال سازی یک لیست زنجیر شده (stringlist)
- فرم سریال پیش فرض تمام گره ها و پیوندهای داخلی را ذخیره می کند ، که ناکارآمد است.
- راه حل: فقط تعداد عناصر و رشته مرتبط با آنها را ذخیره کنید.
- این باعث کاهش فضای شلوغ و عملکرد سریال سازی می شود.
5. اجرای به صورت سریالی سفارشی
- روش ها را ایجاد کنید نوشتن اشمیه readObject برای کنترل سریال سازی.
- از اصلاح کننده گذرا برای جلوگیری از جزئیات غیر ضروری استفاده کنید.
- برای اطمینان از سازگاری در آینده ، همیشه با DefaultWritOobject و defaultreadObject تماس بگیرید.
- API سریال شده را با serial (campos) و serialdata (روش ها) مستند کنید.
6. حتی بیشتر مشکل بیشتر با جداول هش
- موقعیت عناصر به کد هش سوئیچ بستگی دارد ، که می تواند بین اعدام ها تغییر کند.
- سریال سازی ساختار فیزیکی یک جدول هش می تواند متغیرهای آن را فاسد کند.
- راه حل: فقط جفت های ارزش کلیدی را ذخیره کرده و ساختار را در Deside of Desire بازآفرینی کنید.
7. قوانین عمومی برای سریال سازی کارآمد
- هر زمینه ای را که جزئی از وضعیت منطقی شیء نیست ، به عنوان یک گذرا اعلام کنید.
- از سریال سازی فیلدهای مشتق شده که مقدار آنها قابل محاسبه است ، خودداری کنید.
- از سریال سازی نشانگرهای برای ساختارهای بومی JVM خودداری کنید.
پایان
- فرم سریال استاندارد فقط در صورتی که برای وضعیت منطقی شیء کافی باشد باید پذیرفته شود.
- برای کنترل بیشتر ، از یک فرم سریالی سفارشی استفاده کنید ، از کارآیی و انعطاف پذیری اطمینان حاصل کنید.
- این امر از مشکلات آینده در زمینه نگهداری ، عملکرد و سازگاری API سریال جلوگیری می کند.
نمونه هایی از کتاب:
بشر
بشر