以下代码在 WebKit 中找到:
RefPtr<Element> element = pendingScript.releaseElementAndClear();
if (ScriptElement* scriptElement = toScriptElement(element.get())) {
NestingLevelIncrementer nestingLevelIncrementer(m_scriptNestingLevel);
IgnoreDestructiveWriteCountIncrementer ignoreDestructiveWriteCountIncrementer(m_document);
//Do something else...
}
}
NestingLevelIncrementer 是一个简单的类,它在构造时增加计数器,在破坏时减少计数器。你可以在这里查看实现。
在这个废料中,我认为这与直接增加和减少数量类似。也许唯一的好处是无论减少数量,而是引入了一个新类。
还有其他使用这种模式的理由吗?