通过开源项目SHARPDEVELOP项目的核心框架的学习分析说明基础管理框架的抽象设计。
先把这几天面向接口编程的学习小结一下,C#语言关于接口编成的内容:
1、接口允许多继承,类只能继承与一个基类,但是可以从一个基类、多个接口派生;
2、接口只是定义说明,并不具体实现,提供组件/模块之间的交互规范。
3、接口描述一个系统中相对稳定部分的结构,是系统的最高层抽象。
抛开菜单管理器具体的菜单项、工具条的功能按钮、面板内具体的内容、视图的具体内容,将所有具体
GUI内容的操作抽象成为一组抽象的内容接口(contentinterfaces),试图通过接口来定义基础管理框架管
理界面的GUI高层抽象。
每个视图或者面板包含的内容可能拥有的一组接口:
1,ICanBeDirty
定义视图内容的变化标志IsDirty,和变化事件DirtyChanged。在工作台管理器的保存视图内容事件
中调用。
2,IClipboardHandler
定义视图内容是否可以剪切、复制、粘贴、删除、全选状态剪切、复制、粘贴、删除、全选方法。
在文本编辑器的实现中会大量被调用。
3,IContextHelpProvider
定义对内容提供帮助的方法。在按“F1”键时,会调用。
5,IMementoCapable
定义创建新GUI对象记忆和恢复GUI对象记忆方法。
6,IPrintable
定义打印文档属性,打印设置,打印调用方法。
7,IUndoHandler
定义是否可以继续Undo,是否可以继续Redo属性,和Undo,Redo方法。
8,IViewContentMemento
定义创建新视图内容对象记忆和恢复视图内容对象记忆方法。
下面介绍框架核心“视图”的理解:
在windows标准窗体中,视图是的工作是用来做具体事情,视图是可以作为一个文件进行保存,如果打开
多个 视图,那么在关闭工作台窗体之前,需要通知非活动的视图保存,而每个视图是否需要保存则由是
否修改标识来记录。
因此,视图接口在GUI的抽象是这样来定义的 :
1,IViewContent 继承IBaseViewContent,ICanBeDirty
2、IBaseViewContent
2
3、ICanBeDirty
4,ISecondaryViewContent
请园子里的各位大哥,给小弟一些指点。我这样理解