template < typename Strategy > void Fn { A(); Strategy::C(); //传入不同的策略,调用不同的函数 B(); }
Command pattern例子: ICommand: void preProcess(); virtual void process(); void postProcess(); void execute(){ preProcess(); process(); postProcess(); } CommandA(ICommand): virtual void process(){ ...} # 参数在CommandA实例里面用成员变量。 回调,或者说6楼的方法,C和C++都可以实现: C: fn (callback): { A(), callback(), B() } # 参数在callback里面去想办法获取。 IIntface: virtual void execute() = 0; fn(IInterface *p): {A(); p->execute(); B();} #参数同样在具体的实例里面。
[quote=引用 2 楼 wenpinglaoyao 的回复:] 没看懂您想问什么?您指的是函数指针或变长参数表吗?
command pattern
没看懂您想问什么?您指的是函数指针或变长参数表吗?
5,531
社区成员
4,169
社区内容
加载中
试试用AI创作助手写篇文章吧