جز 23 الگوی طراحی GOF نمی باشد و در دسته Java EE Patterns می باشد .ولی یکی از پرکاربردترین الگوهای طراحی مخصوصا در معماری های MVC در همه زبان های برنامه نویسی می باشد.
برای جدا کردن لایه bussiness و Data accessing می باشد.بدینصورت که دسترسی سطح پایین به دیتابیس از دید لایه سطح بالا یعنی bussiness که منطق برنامه در آن پیاده سازی میشود پنهان و جدا میشود.
مزایا:
۱- این جداسازی باعث ساده تر شدن کد ُ نگه داری بهنر و قابل استفاده مجدد در برنامه های مختلف میشود.
۲- تغییرات در هر کدام از لایه ها بدون توجه و نگرانی و مستقل از لایه های دیگر صورت میگیرد.
ORM هایی مانند Hibernate در زبان جاوا از همین تکنیک استفاده میکنند.
پیاده سازی:
از یک Interface و کلاسی که ان را implement میکند و یک model object که بصورت POJO می باشد تشکیل شده است.
model object همان کلاسی است که احتمالا یک جدول متناظر با آن در دیتابیس است. از طریق کلاس StudentDaoImpl همه متدهای لازم برای کار و دسترسی سطح پایین با دیتابیس پیاده سازی میشود.کلاس DaoPatternDemo نیز یک کلاس تستی برای کار با سه کلاس گذشته است.