每次我们去吃拉面的时候,就会对那做面的师傅说,来碗牛肉拉面或羊肉拉面,然后我们就去聊天,过一会面就上来了。
我们可能并不知道这面是怎么做的,我们只需要告诉那师傅我们要什么,那做面的师傅就会给我们做好。这就是简单工厂模式。
下面看下webkit中的一个简单工厂模式:
PassRefPtr<HTMLElement> HTMLElementFactory::createHTMLElement(const QualifiedName& qName, Document* document, HTMLFormElement* formElement, bool createdByParser)
{
if (!document)
return 0;
if (!gFunctionMap)
createFunctionMap();
if (ConstructorFunction function = gFunctionMap->get(qName.localName().impl()))
return function(qName, document, formElement, createdByParser);
return HTMLElement::create(qName, document);
}也就是我们只需要传入一个名字就可以了。
当然这里有点特殊就是那做面的师傅已经把面给做好了,你点了面之后,不用等了,直接就给你端上来了!
还有就是如果你点了师傅也不会做的面,当然这也是有可能的,那师傅就只能给你上啘汤了
本文深入探讨了简单工厂模式在WebKit源代码中的实际应用案例,通过具体实例展示了如何仅通过输入名称就能获取所需的HTML元素实例。文章进一步解释了这种模式背后的原理及其在前端开发中的优势。
11万+

被折叠的 条评论
为什么被折叠?



