บางครั้งฉันเจอ API สไตล์ฮับข้อความเช่น Cocoa NSNotificationCenter: http://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/NSNotificationCenter_Class/Reference/Reference.html
โดยปกติแล้ว API เหล่านี้จะให้จุดเชื่อมต่อส่วนกลางที่คุณสมัครหรือเผยแพร่ข้อความ / กิจกรรม ฉันคิดว่านี่เป็นปัญหาเพราะมันสนับสนุนสถาปัตยกรรมโปรแกรมแบบแบนและไม่มีโครงสร้างซึ่งการพึ่งพาไม่ชัดเจนใน API แต่ซ่อนอยู่ในซอร์สโค้ด คุณไม่ได้ถูกบังคับให้คิดเกี่ยวกับการเป็นเจ้าของวัตถุและลำดับชั้น แต่สามารถทำให้วัตถุใด ๆ ในโปรแกรมของคุณส่งผลให้มีรหัสใด ๆ ที่ถูกเรียก แต่นี่อาจเป็นสิ่งที่ดี?
โดยทั่วไปแล้วรูปแบบนี้ส่งเสริมการออกแบบโปรแกรมที่ดีหรือไม่ดีและทำไมถึงเป็นเช่นนั้น มันทำให้รหัสยากขึ้นหรือง่ายขึ้นในการทดสอบ?
ยกโทษให้ฉันถ้าคำถามนี้คลุมเครือหรือกว้างเกินไป ฉันพยายามคาดไม่ถึงผลที่ตามมาจากการใช้ API อย่างกว้างขวางและวิธีต่างๆที่คุณสามารถใช้ได้
แก้ไข: ฉันเดาว่าปัญหาที่ใหญ่ที่สุดของฉันในรูปแบบนี้คือ API "โกหก" เกี่ยวกับการพึ่งพาและข้อต่อวัตถุและสามารถแสดงด้วยตัวอย่างนี้:
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