日期:2014-05-20  浏览次数:20849 次

如何以派生类名作为参数,在另一个类中实例化父类成员
说明:

CSF是我的开发框架类,
Appinfo是应用程序基本信息类,
CSF中包含Appinfo成员: public AppInfo AppInfo = null; //应用程序信息对象

我在程序初始化时如下书写:

CSF.init();
//以下两句能否并入CSF的init方法内呢?
CSF.AppInfo = new SystemMgrAppInfo();//SystemMgrAppInfo是AppInfo的派生类
CSF.AppInfo.Init();

请问:
以上代码的后两句,能否并入CSF.init()
(这个问题的实质是:如何以派生类名作为参数,在另一个类中实例化父类成员)




------解决方案--------------------
1、可以采取工厂模式,另作一个工厂类负责对象的创建,CSF中调用工厂

2、可以传递派生类的全名给CSF,使用反射创建,这种情况下,派生类最好有个无参的构造函数
------解决方案--------------------
why not?
楼主的做法相当于
C# code
SystemMgrAppInfo derived = new SystemMgrAppInfo();
CSF.AppInfo = derived;
CSF.AppInfo.Init();

------解决方案--------------------
1、可以采取工厂模式,另作一个工厂类负责对象的创建,CSF中调用工厂 

2、可以传递派生类的全名给CSF,使用反射创建,这种情况下,派生类最好有个无参的构造函数
------解决方案--------------------
模板............
------解决方案--------------------
楼主,不明白,你自己设计的时候觉得那里不行?