【发布时间】:2010-07-22 13:58:50
【问题描述】:
什么是被接受的行话(如果有的话)来描述只能虚拟调用的方法以及从基础中的其他方法调用的方法?我偶尔会看到这被称为回调,但这似乎与该术语的原始定义相去甚远。我什至不确定这是否值得被称为模式,但我试图在注释我的代码时变得更加精确。感谢您的帮助!
// Abstract class.
class A {
public:
void run() { while (call()) { /* ... */ } }
private:
virtual bool call() = 0;
};
// Completion/specialization of A.
class B : public A {
private:
// Standard term to indicate this pattern?
bool call();
};
总结:这似乎被称为非虚拟接口模式,是模板方法模式的一个特例。感谢尼克和史蒂文的帮助!
【问题讨论】:
-
呃,
call不应该是protected,而不是private? -
@Steven 和@Arseny:您可以覆盖私有成员。这里应该是
private。 -
@Billy:你没看错,但还是让我有点抽搐。
标签: design-patterns virtual private template-method-pattern non-virtual-interface