+1 امتیاز
قبل در برنامه نویسی توسط (204 امتیاز)
ویرایش شده قبل توسط
چرا Collection دو اینترفیس Cloneable و Serializable را extends نمی کند؟

1 پاسخ

+1 امتیاز
قبل توسط (1.1هزار امتیاز)

اینترفیس Collection پدر تمام کلاس های Java Collection Framework است و از طرف دیگر تمام فرزندان کلاس Collection اینترفیس های Cloneable و Serializable را پیاده سازی کرده اند در حالی که اینترفیس Collection این دو اینترفیس را extends نمی کند. این موضوع یک دلیل طراحی دارد و به عمد اینترفیس Collection این دو اینترفیس را extends نمی کند. بدلیل اینکه بعضی از Collection ها ممکن حاوی اطلاعات زیادی در سطح ترابایت باشند و عملا clone کردن یا serialize کردن آنها کاری بسیار هزینه بر است و معمولا اتفاق نمی افتد و چون طبق قانون polymorphism درون یک متغییر از جنس Collection می تواند شئ از جنس هر کدام از کلاس های فرزند دخیره کرد، ممکن است با فراخوانی متد Cloneable یا Serializable اتفاق های پر هزینه ای بیوفتد و برای جلوگیری از این کار اینترفیس Collection این دو اینترفیس را extends نمی کند.

سوالات مشابه

0 امتیاز
1 پاسخ 622 بازدید
+1 امتیاز
1 پاسخ 524 بازدید
+1 امتیاز
1 پاسخ 1.5هزار بازدید
0 امتیاز
1 پاسخ 500 بازدید
0 امتیاز
1 پاسخ 358 بازدید
سوال شده 5 سال قبل در برنامه نویسی توسط یوری (426 امتیاز)
+1 امتیاز
1 پاسخ 1.7هزار بازدید
0 امتیاز
1 پاسخ 608 بازدید
0 امتیاز
1 پاسخ 589 بازدید
+1 امتیاز
2 پاسخ 698 بازدید
...