我在写一个MFC多文档界面程序。
我为我的程序构造了几个公共类:
class helper1;
class helper2;
...
class helper3;
在程序的每个View、Doc等等都需要调用这几个类的方法,所以对于这个程序来说,我只需要对上面的类实例化一次就够了。
现在的问题出来了,实例化的对象该放置在哪里比较合适呢?
我的同事的建议是都放到App类里面,做为成员存在,而且有些成员是以指针的形式存在的。使用的时候有两种方法:
1、AfxGetApp()->pHelper1->Method1();//直接把成员指针做为公共成员,然后调用,优点是简单,但是直接暴露指针给外部,有可能造成危险。
2、AfxGetApp()->Method1();//在App中添加新的方法,然后调用自己的指针完成操作,优点是保护了指针,缺点是让App类增加了无数接口。我认为,这几个类彼此互不相干,都丢到App里面有些不合适,程序的结构也越来越混乱。
我的一个解决方法是声明几个全局对象,可是全局对象又好象不妥,小组成员都非常害怕全局对象这种使用方法。请问大家有没有更好的方式组织程序?让程序的结构清晰,访问简单。
我为我的程序构造了几个公共类:
class helper1;
class helper2;
...
class helper3;
在程序的每个View、Doc等等都需要调用这几个类的方法,所以对于这个程序来说,我只需要对上面的类实例化一次就够了。
现在的问题出来了,实例化的对象该放置在哪里比较合适呢?
我的同事的建议是都放到App类里面,做为成员存在,而且有些成员是以指针的形式存在的。使用的时候有两种方法:
1、AfxGetApp()->pHelper1->Method1();//直接把成员指针做为公共成员,然后调用,优点是简单,但是直接暴露指针给外部,有可能造成危险。
2、AfxGetApp()->Method1();//在App中添加新的方法,然后调用自己的指针完成操作,优点是保护了指针,缺点是让App类增加了无数接口。我认为,这几个类彼此互不相干,都丢到App里面有些不合适,程序的结构也越来越混乱。
我的一个解决方法是声明几个全局对象,可是全局对象又好象不妥,小组成员都非常害怕全局对象这种使用方法。请问大家有没有更好的方式组织程序?让程序的结构清晰,访问简单。
解决方案 »
- inno setup 打包中vcredist_x86.exe的问题
- 窗口刷新一段时间后怎么就自动停止刷新了?
- ShowWindow() 刷新问题
- 控件问题
- 如何保存printscreen截取下的画面?
- 50分!请问,我用ZwOpenSection打开\device\physicalmemory来获取Bios信息,为什么有时成功,有时返回STATUS_ACCESS_DENIED?
- 很急:有达人会不:ke386callbios
- 如何得到CPU信息,详情请见内容!
- 简单问题,怎么判断鼠标进入和离开视图??
- 菜鸟问题:菜单怎么与Form上的button事件关联呢
- 谁知道什么地方有将照片保存在数据库中的实例谢谢
- 两个简单函数是怎么用的
extern class helper1; 这样app的指针就不会共享,而只有这个类的对象是共享的
namespace your_name
{
....
}
你每一个类的.h和.cpp都用这个包起来!用的时候也很简单eg:
头文件肯定是要include进去的
然后用 your_name::helper1::....就可以了,这样不必担心那些问题了,哈哈!
我个人认为:ross33123() 的看法和我差不多,其实全局变量不是那么的可怕,毕竟mfc 本省也用到了不少的全局变量ben