您在面向对象程序中使用回调的经验是什么?回调是否会导致代码质量更高(更容易理解、扩展和维护)?还是应该在面向对象代码中避免回调?
为了说明这个问题,请考虑以下两种方法,类可以通知它已完成异步任务处理(代码在C++中使用普通函数指针作为回调,但这些只是细节,问题是关于面向对象的实践):
从面向对象的角度看,第一种解决方案似乎更纯粹。您有一个显式定义的接口,它记录了实现接口的代码所做的事情。您可以很容易地找到实现接口的类,代码可以更容易理解。
第二种解决方案更轻量级,它不需要额外的接口,这通常很难设计和命名。它看起来也更灵活,因为它可以减少处理读取的类和在读取完成时通知的代码之间的耦合。但是,代码可能变得更难理解,因为没有明确的接口来记录哪些类可以处理通知。
发布于 2012-08-25 11:08:59
我认为第一个变体在OOP中更好,这就是为什么:
https://stackoverflow.com/questions/12121321
复制相似问题