0 امتیاز
قبل در برنامه نویسی توسط (982 امتیاز)
برچسب گذاری دوباره قبل توسط

دلیل استفاده از Trait های خالی در اسکالا چیست؟




 

1 پاسخ

+2 امتیاز
قبل توسط (330 امتیاز)
این یک الگوی معنایی هست که بهش می گن Marker Trait. هیچ کار خاصی انجام نمی ده اما کلاس ها اون رو پیاده سازی می کنن تا معنی و مفهومی به اون بده.مثلا در اسکالا در اینجا استفاده شده :

scala.Mutable   scala.Immutable

اینجا می فهمیم که نوع کلاس ها آیا mutable هست یا نه که با این trait ها نشانه گذاری شده.

در مورد مثال شما که به پروژه نگاهی انداختم، کلاس user این trait پیاده سازی کرده پس این user به عنوای یک هویت یا identity نشانه گذاری میشه و هرجا نیاز به Identity داشتیم میشه از user استفاده کرد.

این تکنیک در جاوا با annotation پیاده سازی میشه و از اونجا که annotations جزء سیستم type اسکالا نیست استفاده نمیشه.
قبل توسط (982 امتیاز)
ممنون از پاسختون
من خودم اینطور متوجه شدم که ما میایم یک نوع از طریق trait  تعریف میکنیم  بدون پیاده سازی پیش فرض و بعد چند تا کلاس داریم که این trait رو extend میکنند  , و حالا اگر در function خواستیم یه پارامتر ورودی از این type داشته باشیم با implement متفاوت به مشکل نمی خوریم.
قبل توسط (330 امتیاز)
engineer@
انوتیشن برای همین کار ساخته شده.میتونید بجای اینترفیس سریالیزبل از انوتیشن استفاده کنید.
nasim@
بله اینم یکی دیگه از کاربرد هاش هست.حتی میشه در فانتوم تایپ هم استفاده کرد.

سوالات مشابه

0 امتیاز
2 پاسخ 498 بازدید
+2 امتیاز
2 پاسخ 984 بازدید
سوال شده 10 سال قبل در برنامه نویسی توسط Saeed Zarinfam (1.1هزار امتیاز)
0 امتیاز
1 پاسخ 1.2هزار بازدید
0 امتیاز
0 پاسخ 528 بازدید
0 امتیاز
1 پاسخ 161 بازدید
+1 امتیاز
1 پاسخ 226 بازدید
0 امتیاز
1 پاسخ 225 بازدید
+1 امتیاز
1 پاسخ 356 بازدید
0 امتیاز
1 پاسخ 231 بازدید
...