আমাদের প্রয়োগে আমাদের তিনটি স্তর রয়েছে। বাহ্যিক এপিআই সরবরাহের জন্য পরিষেবা স্তর। আমাদের ব্যবসায়ের যুক্তির জন্য বিও স্তর এবং আমাদের ডাটাবেস সংযোগের জন্য একটি ডিএও স্তর।
যাক আমরা প্রত্যেকবার কোনও ফাইল আপডেট করি, আমরা ফোল্ডারে কিছু পরিবর্তন করতে চাই, উদাহরণস্বরূপ 'শেষবারের পরিবর্তিত তারিখ'। এটি একটি লেনদেনের মধ্যে করা প্রয়োজন। হয় এটি সফল হয় এবং ফাইল এবং ফোল্ডার উভয়ই সম্পাদিত হয়। অথবা কোনও ব্যর্থতা রয়েছে এবং লেনদেনটি আবার ঘুরিয়ে দেয় যাতে উভয় বস্তু পূর্বের অবস্থায় থাকে।
"কোনও ফাইল সম্পাদিত হলে কোনও ফোল্ডার সম্পাদনা করুন" -অ্যাকশনটি নিখুঁতভাবে যুক্তিযুক্ত যুক্তিযুক্ত। সুতরাং এর অর্থ এটি বিও-স্তরের অন্তর্গত। তবে, আমরা আমাদের ডাটাবেসগুলির জন্য অবজেক্টিফাই ব্যবহার করি, সুতরাং একটি লেনদেন শুরু করতে আমাদের অফি ()। ট্রানজেক্ট (...) কল করতে হবে। আমরা যদি এই ফাংশনটিকে বিও স্তরটিতে কল করি তবে এটি আমাদের নকশাকে ভেঙে দেয় কারণ আমাদের ব্যবসায়িক স্তরে ডাটাবেস নির্দিষ্ট কল (অবজেক্টিফাই) থাকবে।
এই সমস্যার পরিষ্কার সমাধান কী হবে?
FileBO
কল করতে পারি নাFolderBO.edit(newDate)
?