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 پاسخ 528 بازدید
0 امتیاز
1 پاسخ 744 بازدید
0 امتیاز
1 پاسخ 495 بازدید
0 امتیاز
0 پاسخ 325 بازدید
0 امتیاز
0 پاسخ 181 بازدید
+1 امتیاز
1 پاسخ 519 بازدید
...