界面逻辑分开

chuengchuenghq 2010-01-14 03:11:44
我写了个类;

.h
class ToolBarView : public CFormView

void oninitupdate();
};
cpp:
void toolbarview::oninitupdate()
{ openthis();}


这个视图类,需要调用第三方的dll,假设dll中有函数openthis();
我直接在我写的类中使用,这样是不是 没有把 界面和逻辑 分开阿?

如果要实现 逻辑和界面分开,应该怎么作?
...全文
190 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
xwsn007 2010-01-15
  • 打赏
  • 举报
回复
楼主男的女的?女的欢迎私聊啊,哈哈
xwsn007 2010-01-15
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 xwsn007 的回复:]
楼主可以加个CViewHelper类,用来封装不同dll的调用,并提供统一的接口函数,给视图类用
[/Quote]

基于多态,采用工厂模式,用CViewHelper定义接口(也就是纯虚函数或简单实现的虚函数),然后由其派生一个Helper子类CViewHelper_A,用来实现具体一个dll的调用,这样,以后可灵活扩展加入新dll的调用(派生个CViewHelper_B,而视图类的代码可不做任何修改)
xwsn007 2010-01-15
  • 打赏
  • 举报
回复
楼主可以加个CViewHelper类,用来封装不同dll的调用,并提供统一的接口函数,给视图类用
cnzdgs 2010-01-14
  • 打赏
  • 举报
回复
你现在的做法已经是分开的了。分开是指把代码封装在不同的模块里,模块之间的调用肯定是有的,不然代码怎么执行。
chuengchuenghq 2010-01-14
  • 打赏
  • 举报
回复
还有 别的意见吗
luhongyu2108 2010-01-14
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 sandyandy 的回复:]
1. 首先只是一个调用, 就不重要
2. 如果这个是初始化, 建议放到app的initInstance
3. 如果这个初始化是根据文档对象的, 那么文档的构造函数中初始化

[/Quote]
UP,举双手赞成
lllyyy2403 2010-01-14
  • 打赏
  • 举报
回复
我觉得这方面没有一个死的规律。你完全可以在视图类中使用,因为用dll封装就代表逻辑本身已经分开。至少在我们的项目中就是这样(也许是我孤陋寡闻)。这样界面开发与逻辑开发可以交给不同的人处理。
chuengchuenghq 2010-01-14
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 oyljerry 的回复:]
可以把调用dll放到InitInstance等其他初始化中,oninitupdate只进行UI相关初始化
[/Quote]
如果 我 要在按钮按下事件中调用dll函数呢?
oyljerry 2010-01-14
  • 打赏
  • 举报
回复
可以把调用dll放到InitInstance等其他初始化中,oninitupdate只进行UI相关初始化
sandyandy 2010-01-14
  • 打赏
  • 举报
回复
1. 首先只是一个调用, 就不重要
2. 如果这个是初始化, 建议放到app的initInstance
3. 如果这个初始化是根据文档对象的, 那么文档的构造函数中初始化

15,980

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧