abstract factory希望不用指定具体的类,但为了找到它们,在txmldocument是通过指定一个字符串,也就是我们点击domvendor时出现的哪几个字符串.现在回到开始,再来看看切入点
domvendor := getdomvendor(domvendordesc);
最后取得一个idomimplementation,它有一个createdocument(….):idomdocument;函数,这个函数将返回一个idomdocument;接口让ixmldoucment使用。
在如果使用msxml,接口对应的是tmsdomdocument,tmsdomdocument是实际上是调用msxml技术,下面是调用ms com的代码
function createdomdocument: ixmldomdocument;
begin
result := tryobjectcreate([class_domdocument40, class_domdocument30,
class_domdocument26, msxml.class_domdocument]) as ixmldomdocument;
if not assigned(result) then
raise domexception.create(smsdomnotinstalled);
end;