Uygulamamızda üç katman var. Harici bir API sağlamak için hizmet katmanı. İş mantığımız için BO katmanı ve veritabanı bağlantımız için bir DAO katmanı.
Diyelim ki bir dosyayı her güncellediğimizde, Klasör'deki bir şeyi değiştirmek istiyoruz, örneğin 'son değiştirilme tarihi'. Bunun bir işlemde yapılması gerekir. Ya başarılı olur ve hem Dosya hem de Klasör düzenlenir. Ya da bir hata var ve işlem her iki nesne de önceki durumda olacak şekilde geri alınır.
"Bir dosya düzenlendiğinde klasörü düzenle" işlemi yalnızca iş mantığıdır. Yani bu BO katmanına ait olduğu anlamına gelir. Ancak, Veritabanımız için Objectify kullanıyoruz, bu nedenle bir işlemi başlatmak için ofy (). Transact (...) 'i çağırmamız gerekiyor. Bu işlevi BO katmanında çağırırsak, Business katmanımızda Veritabanına özel çağrılar (Objectify) olacağından bu tasarımımızı bozar.
Bu sorun için temiz bir çözüm ne olurdu?
FileBO
çağrıFolderBO.edit(newDate)
çünkü işlem sorunu?