0 امتیاز
قبل در برنامه نویسی توسط (922 امتیاز)

در پروژه های بزرگ وقتی تعداد کلاس های جاوا زیاد می شود دسته بندی آنها در package های مختلف اهمیت زیادی پیدا می کند، آیا best practice برای این دسته بندی در دنیای جاوا وجود دارد؟ برای مثال بهتر است کلاس های یک use case در یک package باشند یا اینکه دسته بندی بر اساس قابلیت صورت گیرد؟

1 پاسخ

+2 امتیاز
قبل توسط (1.3هزار امتیاز)
ویرایش شده قبل توسط
 
بهترین پاسخ

یکی از اصولی که بسیاری از ابزارها و کتابخانه های مشهور در جاوا آن را رعایت می کنند Package by Feature است که در برابر روش Package By Layer قرار دارد.

در روش Package by Feature از package ها بعنوان ابزاری برای بیان قابلیت های نرم افزار استفاده می شود و در هر package فقط کلاس های مرتبط با یک قابلیت خاص قرار داده می شود، برای مثال در یک برنامه مدیریت داروخانه ممکن است package بندی بصورت زیر باشد:

  • com.app.doctor
  • com.app.drug
  • com.app.presription

و در هر کدام از این package ها کلاس ها و فایل های مرتبط با آن package در لایه های مختلف نرم افزار جمع شده اند (کلاس های UI, Controller و ...). مهمترین مزیت این روش ماژولاریتی بالا و وابستگی کم بین package است.

در روش Package By Layer، از لایه بندی برنامه برای دسته بندی کلاس ها استفاده می شود، برای مثال در برنامه مدیریت داروخانه packaging می تواند بصورت زیر باشد:

  • com.app.action
  • com.app.model
  • com.app.dao

که در این روش کلاس ها مختلف یک قابلیت در package های مختلف پراکنده می شوند و در نهایت ماژولاریتی پایین می آید و وابستگی بین package زیاد است.

از مزایای روش Package by Feature نسبت به Package By Layer می توان به موارد زیر اشاره کرد:

  • Modularity بالاتر
  • Navigation آسانتر بین کدها
  • مدیریت راحتتر کلاس ها و قابلیت ها در زمان بزرگ شدن پروژه
  • و ...

سوالات مشابه

0 امتیاز
1 پاسخ 535 بازدید
0 امتیاز
1 پاسخ 756 بازدید
0 امتیاز
1 پاسخ 500 بازدید
0 امتیاز
0 پاسخ 328 بازدید
0 امتیاز
0 پاسخ 184 بازدید
+1 امتیاز
1 پاسخ 523 بازدید
...