Kami memiliki tiga lapisan dalam aplikasi kami. Lapisan layanan untuk menyediakan API eksternal. Lapisan BO untuk logika bisnis kami, dan lapisan DAO untuk koneksi basis data kami.
Katakanlah setiap kali kita memperbarui File, kita juga ingin mengubah sesuatu di Folder, misalnya 'tanggal modifikasi terakhir'. Ini perlu dilakukan dalam transaksi. Entah berhasil dan baik File maupun Folder diedit. Atau ada kegagalan dan transaksi dibatalkan sehingga kedua objek berada dalam keadaan sebelumnya.
Tindakan "Edit folder saat file diedit" adalah murni logika bisnis. Jadi ini berarti itu termasuk dalam lapisan-BO. Namun, kami menggunakan Objectify untuk Database kami, jadi untuk memulai transaksi kami perlu memanggil ofy (). Transact (...). Jika kita memanggil fungsi ini di lapisan BO, ini akan merusak desain kita karena akan ada panggilan khusus Database (Objectify) di lapisan Bisnis kita.
Apa yang akan menjadi solusi bersih untuk masalah ini?
FileBO
meneleponFolderBO.edit(newDate)
karena masalah transaksi?