现在有了工厂模式后,我们要在dll中管理多个对象或则不同的对象就十分方便了,我们甚至可以让CreateAFoo接受一个参数以确定创建何种类型的对象,并且每新增加一种对象我们就在TfooManager工厂类中添加一个对象的私有字段(动态数组,当然也可以根据你的需要使用其它的数据结构如链表TList)。关于这个工厂类的其它方法的代码请参看文后的代码清单。
问题和解决技巧:
※引用计数问题(当我们需要手工管理对象的生命周期时):
既然我们在工厂类中定义了私有字段以存贮dll中的诸多对象实例,那从这里得到的一个很显然的观点是我们需要手工管理其中对象的生命周期,我们也许还需要在工厂类中添加一个用于释放所管理对象的方法:
procedure TFooManager.DelAFoo(id:integer);
var
i:integer;
begin
if FooNum>0 then
begin
FList[id].Free;
文章整理:西部数码--专业提供域名注册、虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!




