|
|
1
1
我建议你 不 要从包含如下公共代码的基类继承特定的消息处理类:
这种方法的可重用性很差:例如,如果您想要处理某种需要从一个新的和一个CNL执行操作的消息,那么您将很快得到多个继承。 相反,我会选择一个包含公共代码的类,它调用接口来定制公共代码。像这样:
handlerContainer类可用于将其他处理程序的行为分组在一起。 如果我没弄错的话,这个模式叫做“复合”。为了创建正确的处理程序实例,您当然需要某种工厂。 祝你好运! |
|
|
2
0
那 做 听起来像一个有趣的挑战。-)
您的“初始计划”听起来是一个不错的计划:排除所有消息之间所有类似的处理,并将它们的代码放在基本消息类中。更改项可以成为虚拟功能(例如
对于这样的设计问题,很难给出一般性的建议。在我看来,您的主解析器函数与工厂方法模式相对应,但这是唯一一个我可以轻松识别的。(我对设计模式的名称并不太熟悉——我使用了许多模式,但我只知道它们 有 几年前的名字。) |
|
|
3
0
你可能已经意识到了,但以防万一…你应该去取/借 Gang of Four design patterns book 以帮助识别和应用适当的模式。这是规范引用,它包含交叉引用和表,以帮助您决定哪些模式适合您的应用程序。对于这里的人们来说,仅仅根据描述就很难确定可能对您有帮助的特定模式。 |
|
|
4
0
例如,我建议查看Boost提供的库
一旦知道了消息类型,就可以使用适当的元组和将第一个元组类型应用于数据的函数模板。然后是元组中的下一个条目,依此类推。 这确实假定您的数据流的布局在编译时是已知的,但是它的优点是您没有为数据结构支付任何运行时开销。 |
|
|
sungjun cho · 函数模板重叠多个匹配项 1 年前 |
|
|
Amaterastis · 基类接受子类和内部子类的模板参数 1 年前 |
|
|
111111 · 确定作为模板参数传递的函数的参数类型 1 年前 |
|
|
Sam · 在LaTeX中将图像添加到预制的投影仪中 1 年前 |
|
|
user416983 · 模板函数成员作为模板参数 1 年前 |
|
|
PyOPTProblem · c++如何模板化模板参数的部分实例化? 1 年前 |