কখনও কখনও আমি এই বার্তা-হাব-স্টাইল এপিআইগুলি জুড়ে আসি, উদাহরণস্বরূপ কোকোয়া এনএসএনটিফিকেশন সেন্টার: http://developer.apple.com/library/mac/#docamentation/Cocoa/References/Foundation/Class/NSNotificationsCenter_Class/References/References.html
সাধারণত এই API গুলি একটি বিশ্বব্যাপী অ্যাক্সেস পয়েন্ট সরবরাহ করে যার উপর আপনি সাবস্ক্রাইব করেছেন বা বার্তা / ইভেন্টগুলি সম্প্রচার করছেন। আমি ভাবছি এটি একটি সমস্যা কারণ এটি একটি ফ্ল্যাট এবং কাঠামোগত প্রোগ্রাম আর্কিটেকচারকে উত্সাহ দেয়, যেখানে নির্ভরতাগুলি API এ সুস্পষ্ট নয়, তবে উত্স কোডে লুকানো রয়েছে। আপনাকে অবজেক্টের মালিকানা এবং শ্রেণিবিন্যাস সম্পর্কে ভাবতে বাধ্য করা হবে না, বরং আপনার প্রোগ্রামের যে কোনও আইটেমকে যে কোনও কোডেই ডেকে আনা যেতে পারে result তবে সম্ভবত এটি একটি ভাল জিনিস?
এই প্যাটার্নটি সাধারণত ভাল বা খারাপ প্রোগ্রাম ডিজাইনকে উত্সাহ দেয় এবং কেন? কোডটি কি আরও কঠিন বা পরীক্ষা করা সহজ করে তোলে?
এই প্রশ্নটি খুব অস্পষ্ট বা বিস্তৃত হলে আমাকে ক্ষমা করুন আমি এই জাতীয় কোনও এপিআই ব্যবহারের সম্ভাব্য পরিণতিগুলি এবং আপনি এটির ব্যবহার করতে পারেন এমন বিভিন্ন উপায়ে আমার মাথা গুটিয়ে দেওয়ার চেষ্টা করছি।
সম্পাদনা: আমি অনুমান করি যে এই প্যাটার্নটির সাথে আমার সবচেয়ে বড় সমস্যাটি হ'ল এপিআই নির্ভরতা এবং অবজেক্ট কাপলিং সম্পর্কে "মিথ্যা" এবং এই উদাহরণ দিয়ে চিত্রিত করা যায়:
myObj = new Foo();
myOtherObj = new Bar();
print myOtherObj.someValue; // prints 0
myObj.doSomething();
print myOtherObj.someValue; // prints 1, unexpectedly, because I never indicated that these objects had anything to do with each other