Telah mencoba membuat alur untuk aplikasi web berjenjang dasar, dan telah membaca informasi yang saling bertentangan secara online. Yang saya coba cari tahu adalah apakah ada keuntungan untuk tetap menggunakan objek DTO dari DAO Anda ke lapisan Layanan melalui penggunaan semacam mapper.
Aliran dasar yang saya ramalkan adalah sebagai berikut:
- Model / Formulir UI -> Pengontrol
- Pengendali mengubah Model menjadi Objek Domain (Entitas)
- Objek Domain -> Lapisan Layanan
- Objek Domain -> DAO
- DAO -> Objek Domain
- Layanan -> UI
- UI mengubah Domain menjadi model UI
Jika DTO diikuti, DAO akan mengembalikan DTO bukan Entitas. Setelah melakukan beberapa pembacaan sepertinya DTO telah menjadi sedikit tidak aktif sejak (setidaknya di Jawa) entitas telah menjadi POJO beranotasi yang berarti jejak memori mereka menjadi sangat kecil.
Apakah ini masalahnya, atau apakah DTO harus digunakan untuk merangkum sepenuhnya objek domain dalam lapisan DAO, dan, jika demikian, lapisan layanan apa yang akan diteruskan ke DAO?
Terima kasih banyak!
Salah satu alasan saya pikir diskusi ini muncul berulang kali adalah karena tampaknya seperti kesakitan serius untuk mengambil objek dengan semua data yang Anda butuhkan dan mengubahnya menjadi objek yang terlihat identik atau hampir identik dengan yang ada. kamu menyerahkan
Memang benar, itu adalah PITA. Tetapi ada beberapa alasan (selain yang disebutkan di atas) untuk melakukannya.
Tetapi, Anda dapat mengelolanya dengan cukup efektif jika Anda merangkum logika terjemahan ke dalam kumpulan kelas konverter
Lihat lambdaJ di mana Anda dapat melakukan 'convert (domainObj, toDto)' ada kelebihan ini untuk digunakan dengan koleksi. Berikut adalah contoh metode pengontrol yang memanfaatkannya. Seperti yang Anda lihat, itu tidak terlihat terlalu buruk.
sumber