MVC Pattern
OVERVIEW
从比较宏观的角度介绍Venus ;用设计模式来描述就是MVC+Factory Pattern。
Model-View-Controller
MVC模式是一种非常常用的设计模式,其原理不再赘述。在Venus 中也采用了此模式——模型数据-显示-编辑器,分别用类CAnyDocument,CAnyView,CAnyEdior来实现。其中:
l CAnyDocument
文档管理
l CAnyView
模型显示,场景管理
l CAnyEditor
模型编辑器接口,即创建模型的操作,如创建Sphere,Box,Line等。
Extrend
为了便于Editor的管理和功能的扩充,增加了两个管理类CEditorMgr和CEditorFactory。
l CEditorFactory
采用参数化的工厂方法管理所有的Editor。通过editor的ID用相应的Editor Creator就可以创建出Editor实例。
l CEditorMgr
一个CAnyView一次只能有一个活动的Editor,各种操作的关系有的存在堆栈式的关系,因而用CEditorMgr管理当前View中的Editor。
l CEditorCreator
提供创建Editor的接口。通常,每实现一个CAnyEditor的子类,就需要一个Creator与之对应,以便注册到CEditorFactory工厂中。
Classes structure
各类之间的关系如下:
MVC Pattern
注:XXX代表子类,如CSphereEditor,CBoxEditor等
Demo
完整程序
完整程序20070520Full
更新补丁20070522
Contract
mythma@126.com