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 پاسخ 706 بازدید
+1 امتیاز
1 پاسخ 489 بازدید
0 امتیاز
1 پاسخ 2.6هزار بازدید
سوال شده 9 سال قبل در برنامه نویسی توسط engineer (843 امتیاز)
+1 امتیاز
2 پاسخ 2.0هزار بازدید
+1 امتیاز
1 پاسخ 472 بازدید
0 امتیاز
0 پاسخ 48 بازدید
0 امتیاز
1 پاسخ 93 بازدید
+1 امتیاز
1 پاسخ 662 بازدید
+1 امتیاز
1 پاسخ 545 بازدید
...