我有一个基于事件的通信系统,这是它的简化版本:
A类:包含从B类派生的元素
B类:有一个指向其所有者A的指针
因此当B想要与其他B-s通信时,它会调用 A的Broadcast()方法:
但我想知道:
优点:
而不是m_owner-> Broadcast()我可以只写Broadcast()
缺点:
程序中将有+1个函数调用。
这是一个好习惯吗?为什么是,为什么不呢?
答案 0 :(得分:2)
在你所描述的情况下,它可能确实没有太大的区别。
但是将来您可能会发现需要在调用Broadcast
的每个位置添加额外的代码,例如日志记录或互斥锁定。在这种情况下,单独的函数将非常有用。
另外,您提到您有来自B
的派生类。如果这是一个调用m_owner->Broadcast()
的派生的类,而m_owner
是一个基类字段,那么这不是一个好的模式。派生类应该更好地访问父的受保护函数,而不是直接访问数据成员。