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

چرا در spring عملیات دیتابیسی را باید در لایه dao  پیاده سازی کرد چرا نمیتوان این عملیات را در لایه service انجام داد  فرق این دو لایه در چیست؟

1 پاسخ

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

این بخاطر تبعیت از معماری لایه ای است. در لایه DAO عملیات مربوط به ارتباط با دیتابیس انجام میشه و در لایه سرویس عملیات مربوط به کار های بیزینسی که معمولا از ترکیب چند DAO انجام میشه.

مزایای این جدا سازی عبارت است از:

  • خواناتر شدن کد و در نتیجه نگهداری از کد در بلند مدت راحتتر می شود.
  • بالا رفتن reuseability یعنی می توانید از یک DAO نوشته شده در چند سرویس استفاده کنیم.
  • افزودن یک قابلیت عمومی خاص به یک لایه راحتر انجام می شود و همچنین لایه های دیگر تحت تاثیر قرار نمی گیرند. برای مثال transaction management  در لایه سرویس.
قبل توسط (308 امتیاز)
ممنون از جواب کاملتون
توی برنامه باید به ازای هر entitiy یک پیاده ساز DAO داشته باشیم ؟؟ آیا بهتر نیست یک لایه DAO برای تمام entity های برنامه وجود داشته باشد چون در لایه DAO فقط عملیات crud انجام میگیرد که با یک پیاده سازی میتوانیم تمام عملیات crud را برای تمام entity ها داشته باشیم
قبل توسط (1.1هزار امتیاز)
این روش هایی که شما گفته اید همگی ممکن است و یک تصمیم معماری است که باید در زمان طراحی معماری اولیه گرفته شود.

سوالات مشابه

+1 امتیاز
2 پاسخ 862 بازدید
+1 امتیاز
1 پاسخ 638 بازدید
0 امتیاز
1 پاسخ 2.8هزار بازدید
سوال شده 10 سال قبل در برنامه نویسی توسط engineer (843 امتیاز)
+1 امتیاز
2 پاسخ 2.3هزار بازدید
+1 امتیاز
1 پاسخ 570 بازدید
0 امتیاز
0 پاسخ 127 بازدید
0 امتیاز
1 پاسخ 255 بازدید
+1 امتیاز
1 پاسخ 808 بازدید
+1 امتیاز
1 پاسخ 788 بازدید
...