※使用工厂模式:
解决上面问题的最好办法是在DLL的设计中使用工厂模式来管理其中维护的多个对象,这样做不仅可以维护不同的对象,还可以维护一个类的多个实例。然后我们只用在那个唯一的导出函数中导出这个工厂对象的接口,其它的对象接口都可以通过这个接口获得。比如象下面的样子:
function TFooManager.CreateAFoo: IFoo;
begin
inc(FooNum);
if length(FList)<FooNum then
setlength(FList,FooNum*2);
FList[FooNum-1]:=TFoo.Create;
…
result:=FList[FooNum-1] as IFoo;
end;
例如上面的TfooManager就是一个工厂类,它负责管理DLL中具体对象的生命周期,CreateAFoo创建一个DLL中名为Foo的对象,并把它保存到自己的私有字段,一个动态数组中:
private
FList:array of TFoo;
文章整理:西部数码--专业提供域名注册、虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!




