社区
研发管理
帖子详情
请教一个体系结构的问题
fengfeng2003
2003-04-30 10:15:06
现假设用MFCk开发一程序:
class CCircle
{
public:
.......
int Draw(CDC& ...)
.......
}
在窗口中绘图肯定要用到CDC类,也就是说Draw成员函数要有一个CDC类型参数,
请问这是否违反了领域层与表示层分离的原则,如果违背了的话,在类似画图程序中如何实现模型与视图分离呢?
...全文
85
5
打赏
收藏
请教一个体系结构的问题
现假设用MFCk开发一程序: class CCircle { public: ....... int Draw(CDC& ...) ....... } 在窗口中绘图肯定要用到CDC类,也就是说Draw成员函数要有一个CDC类型参数, 请问这是否违反了领域层与表示层分离的原则,如果违背了的话,在类似画图程序中如何实现模型与视图分离呢?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
netkid
2003-07-07
打赏
举报
回复
楼上说得不错
stonespace
2003-07-03
打赏
举报
回复
严格的说是违反了领域层与表示层分离的原则。
违反这个原则的代价是不能用于MFC之外的任何平台,而CCircle本身代表的概念和MFC无关,因此这样设计降低了CCirle的可重用性。
仔细考虑CCircle的概念,CCircle不仅仅表示“园”,而是可以显示的“园”,显示必须有载体,比如窗口、打印机等等。所以Draw必须有一个参数表示载体,问题的根本就是CDC的实例,并不代表载体的全部,而只能代表载体的一小部分,就是因为这个才导致可重用性的降低。
最一般的设计方法是,抽象一个显示载体类,比如CDisplayTarget类,然后,通过Adapt模式包装CDC的方法在MFC框架中画园。但是这样设计会导致类数目增加,增加复杂性,它带来的可重用性是否能够用得上?这个问题应该仔细权衡,如果可重用性没有机会用得上,还不如直接用CDC作为参数,这样容易实现也不容易出错。
WebDB
2003-07-03
打赏
举报
回复
使用MFC开发,实际上就已经确定使用的MS的应用框架,数据表现的时候必然要用到CDC等类。
Draw要输出自定义的图形类型,必然是在一个设备上输出的,我们把CDC仅仅看作指向设备的一个变量而已。
如果MFC的框架中CDC等类支持其他的操作系统,应该就能实现跨平台吧。
fengfeng2003
2003-07-03
打赏
举报
回复
能具体用简单代码解释一下吗?
w_rose
2003-05-02
打赏
举报
回复
“绘图”有两层含义:
一、为绘图计算所需要记录和变更的系统数据。
二、将已经计算好的结果直接绘制出来。
按层次将这两层分开,后者继承前者。
软件
体系结构
笔记
软件
体系结构
笔记 软件开发流程 1.软件开发流程_简介 1.1从管理角度 即从业务和经济的角度来看,软件的生命周期包括四个主要阶段: 起始阶段:有
一个
好的想法:具体构想产品的设想和它的业务案例,确定项目的范围 ...
arm
体系结构
与汇编100问
arm
体系结构
与汇编100问 第1章
体系结构
第1问: Q:请问在初始化CPU堆栈的时候一开始在执行mov r0, LR这句指令时处理器是什么模式 A:复位后的模式,即管理模式. 第2问: Q:
请教
:MOV中的8位图立即数,是怎么一...
ARM
体系结构
与汇编100问(一)
第1章
体系结构
第1问: Q:请问在初始化CPU堆栈的时候一开始在执行mov r0, LR这句指令时处理器是什么模式 A:复位后的模式,即管理模式. 第2问: Q:
请教
:MOV中的8位图立即数,是怎么一回事 0xF0000001是怎么来的 ...
计算机
体系结构
的一些总结
如果说指令集是一本“字典”,那么IP核提供了“段落”的写作方式,芯片架构则可被视作是“整篇文章的提纲”。芯片IP企业作为芯片设计企业的上游供应商,通常以授权的方式,向后者收取专利费用。而芯片设计企业通过...
请教
LINUX初学
问题
请教
LINUX初学
问题
发信站: 瀚海星云 (2008年10月15日11:26:11 星期三), 站内信件颇感欣慰似乎还想依靠linux找到一份工作我假设你是计算机科班出身,计算机系的基本课程如数据结构、操作系统、
体系结构
、编译原理、...
研发管理
1,265
社区成员
28,324
社区内容
发帖
与我相关
我的任务
研发管理
软件工程/管理 管理版
复制链接
扫一扫
分享
社区描述
软件工程/管理 管理版
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章