প্রথমে আমি সত্যটি CustomException
প্রকাশ করতে চাই যা প্রসারিত হয় না Exception
তাই এটি আসলে একটি নয় Exception
।
বলেছিল:
আপনি যদি নির্ভরতা বিপরীতার নীতি সম্পর্কে চিন্তা না করেন তবে এটি যেমন আছে তেমন ছেড়ে দিন। একটি ইন্টারফেসের জন্য কংক্রিটের ক্লাসের উপর নির্ভর করা পুরোপুরি ঠিক আছে , উদাহরণস্বরূপ অনেক ইন্টারফেস নির্ভর করে String
বা Object
কোনটি কংক্রিটের ক্লাসগুলিতে । বিষয়টি হ'ল আমরা বিশ্বাস করি যে জাভা এসডিকে অন্তর্ভুক্ত এমন ক্লাসগুলি যেগুলি আমরা লিখি তার চেয়ে বেশি স্থিতিশীল (কোড-ব্রেকিং পরিবর্তনের প্রবণতা কম) are
অপরপক্ষে:
আপনি যদি ডিআইপি অনুসরণ করতে চান (যার অগনিত সুবিধা রয়েছে এবং এটি আমার প্রস্তাবনা), তবে আপনাকে দুটি কাজের একটি করতে হবে:
বিকল্প 1
CustomException
বিমূর্ত করুন
void onError(CustomException ex)
যেমন আছে তেমন রাখুন
বিকল্প 2
CustomException
একটি ইন্টারফেস তৈরি করুন
void onError(CustomException ex)
যেমন আছে তেমন রাখুন
এই বিকল্পগুলির যে কোনওটির সাথে আপনি ডিআইপি সাপেক্ষে যাবেন, যেহেতু ইন্টারফেসটি কোনও কংক্রিট শ্রেণির উপর নির্ভর করে না, কেবল বিমূর্ততার উপর on
নির্ভরতা বিপরীতকরণের প্রত্যক্ষ প্রয়োগে, বিমূর্তগুলি উপরের / নীতি স্তরগুলির মালিকানাধীন। এই আর্কিটেকচারটি উচ্চ / নীতি উপাদান এবং বিমূর্তগুলিকে একই প্যাকেজে নিম্ন পরিষেবাদি সংজ্ঞায়িত করে এমন গোষ্ঠীগুলিকে দলবদ্ধ করে। এই বিমূর্ত শ্রেণি বা ইন্টারফেসগুলির উত্তরাধিকার / প্রয়োগের মাধ্যমে নিম্ন স্তরের স্তরগুলি তৈরি করা হয় । মার্টিন, রবার্ট সি। (2003)।
- চতুর সফ্টওয়্যার বিকাশ, নীতিমালা,> নিদর্শন এবং অনুশীলনসমূহ। প্রেন্টিস হল. পৃষ্ঠা 127–131। আইএসবিএন 978-0135974445।