S
SS2000
Unregistered / Unconfirmed
GUEST, unregistred user!
具体是这样的,我在做一个股票分析软件,涉及到股票指标的计算的显示,我做了
一个股票指标的显示类。但是每种指标的算法都不一样,所以我把算法封装成了一个
算法类(接口),那么股票显示类就只要调用算法接口就可以了,不同的指标显示只要
替换了算法类就可以,显示类就不必修改任何代码,在替换算法类的时候,我用了一个
模板函数,
function CreateCalculateClass(iType: integer): TCalculateClass;
参数类型是一个整数,然后一个大case语句
case iType of
1: result := TCalculateClass1.Create;
2: result := TCalculateClass2.Create;
3: result := TCalculateClass3.Create;
end;
现在的问题是,我想做另一个模板函数,利用类的指向
procedure RegisteCalculateClass(ACalculateClass:TCalculateClass;iType: integer);
把类的信息注册到程序里面保存起来,这样,CreateCalculateClass就不必在用case语句了,
更重要的是,在程序其他地方,我还需要知道有多少指标类,以便在菜单中自动显示,
现在只能手工改动相应的地方。
但是如何做RegisteCalculateClass,如何保存类信息,以便在CreateCalculateClass和
其他地方使用,没有思路,各位能否指点一二。
一个股票指标的显示类。但是每种指标的算法都不一样,所以我把算法封装成了一个
算法类(接口),那么股票显示类就只要调用算法接口就可以了,不同的指标显示只要
替换了算法类就可以,显示类就不必修改任何代码,在替换算法类的时候,我用了一个
模板函数,
function CreateCalculateClass(iType: integer): TCalculateClass;
参数类型是一个整数,然后一个大case语句
case iType of
1: result := TCalculateClass1.Create;
2: result := TCalculateClass2.Create;
3: result := TCalculateClass3.Create;
end;
现在的问题是,我想做另一个模板函数,利用类的指向
procedure RegisteCalculateClass(ACalculateClass:TCalculateClass;iType: integer);
把类的信息注册到程序里面保存起来,这样,CreateCalculateClass就不必在用case语句了,
更重要的是,在程序其他地方,我还需要知道有多少指标类,以便在菜单中自动显示,
现在只能手工改动相应的地方。
但是如何做RegisteCalculateClass,如何保存类信息,以便在CreateCalculateClass和
其他地方使用,没有思路,各位能否指点一二。