一、引言
在 C++ 开发过程中,经常会遇到需要一个类在遇到某种情况下(比如触发了一个行为等等)需要驱使另一类去做某些行为的需求(也就是回调机制)。
那么这个需求该如何实现呢?
这里我根据自己的经验,总结了一个巧妙又简单的使用多态的方法。
以下结合一个简单的例子,尽量将这个方法清晰的表达出来。
二、Demo:A 和 B 的寒暄程序
这里我们假定一个需求:
现在有两个人,一位是 A 先生,另一位是 B 先生。
现在要求当 A 先生给 B 先生打了招呼之后,B 先生立马回复 A,向 A 问好。
好了,现在需求就是这么简单,让我们分析下,这个需求涉及到了什么呢?我将这个过程抽象为三个类进行模拟:
角色 | 功能 |
---|---|
A | 向 B 打招呼 |
B | 当 A 向自己打招呼,向 A 打招呼 |
主过程 | 世界的主宰,捏出了 A 和 B,控制着时空,提供 A 和 B 寒暄的一切外部条件 |
当我们看到上述的分析后,应该想到这么三个内容:
A 的作用:A 在这里干了什么呢?他是触发一次回调行为的触发点,也就是因为 A 进行了打招呼的行为,才有了 B 的回复的行为。也就是说: