1 / 65
文档名称:

软件设计模式.ppt

格式:ppt   大小:1,251KB   页数:65页
下载后只包含 1 个 PPT 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

软件设计模式.ppt

上传人:ttteee8 2020/1/10 文件大小:1.22 MB

下载得到文件列表

软件设计模式.ppt

文档介绍

文档介绍:(一)WhyPatterns?内容从一个例子看模式关于模式的研究情况介绍一些重要的模式(部分)一个设计例子VC/Samples/MFC/OLE/DrawCliDrawCli的基础MFC提供的基础Doc/View结构Doc提供了强大的数据管理功能View提供了强大的显示功能splitwnd功能CWinApp/CMainFrame提供了一套命令处理流程对OLE的封装ActiveContainerOLEClipboardPropertyPage数据结构管理功能CObject/CObList我们的设计焦点用C++对象来表示每一个图元定义图元的公共接口如何处理用户的操作鼠标的动作图元对象的创建和管理图元基类classCDrawObj:Object{//Attributes CDrawDoc*m_pDocument; //owner virtualintGetHandleCount(); virtualCPointGetHandle(intnHandle); etHandleCursor(intnHandle); virtualvoidSetLineColor(COLORREFcolor); virtualvoidSetFillColor(COLORREFcolor);//Operations virtualvoidDraw(CDC*pDC); virtualvoidDrawTracker(CDC*pDC,TrackerStatestate); virtualvoidMoveTo(constCRect&positon,CDrawView*pView=NULL); virtualintHitTest(CPointpoint,CDrawView*pView,BOOLbSelected); virtualBOOLIntersects(constCRect&rect); virtualvoidMoveHandleTo(intnHandle,CPointpoint,CDrawView*pView=NULL); virtualvoidOnOpen(CDrawView*pView); virtualvoidOnEditProperties(); virtualCDrawObj*Clone(CDrawDoc*pDoc=NULL); virtualvoidRemove(); virtualvoidSerialize(CArchive&ar);//……};图元层次结构CDrawObjCDrawRectCDrawPolyCDrawOleObj……CDrawObjCDrawRectCDrawPolyCDrawOleObj……图元的创建永久支持:CDocument::Serialize->CObList::Serialize ->CObject::SerializeCDrawObj::CloneDrawTool:创建图元对象交互操作键盘和菜单命令MFC内部机制鼠标操作在CDrawView的鼠标处理函数中处理工具箱:工具链,有一个当前活动工具转交给当前活动工具来处理