惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

V
V2EX
博客园 - 叶小钗
Last Week in AI
Last Week in AI
Google DeepMind News
Google DeepMind News
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Microsoft Security Blog
Microsoft Security Blog
腾讯CDC
P
Proofpoint News Feed
大猫的无限游戏
大猫的无限游戏
The Cloudflare Blog
aimingoo的专栏
aimingoo的专栏
月光博客
月光博客
量子位
A
About on SuperTechFans
Engineering at Meta
Engineering at Meta
Apple Machine Learning Research
Apple Machine Learning Research
Jina AI
Jina AI
博客园 - Franky
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
人人都是产品经理
人人都是产品经理
D
DataBreaches.Net
博客园_首页
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Stack Overflow Blog
Stack Overflow Blog

博客园 - 费哥

VC++实现应用程序对插件的支持(转) typedef的四个用途和两个陷阱(转) c#动态创建ODBC数据源 设为首页,加入收藏,联系我们 - 费哥 - 博客园 ASP.NET 2.0中CSS失效 ADO.NET更新ACCESS碰到的怪异问题 DataGrid中的數據輸出到Excel 对 Windows 窗体控件进行线程安全调用 将参数传递给线程(Vc#2005) 创建合理位置的线标注 Sql2005导出SQL2000格式的脚本 c#枚举的用法及遍历方法 将外部图块插入当前图形(c#代码) 无法将顶级控件添加到控件 使用Microsoft Visual Studio2005开发ObjectARX设置 CS1595:已在多处定义 软件设计师考试大纲 <<设计模式可复用面向对象软件的基础>>--设计模式怎样解决设计问题 <<设计模式可复用面向对象软件的基础>>读书笔记--(第一章)引言
<<设计模式可复用面向对象软件的基础>>--组合模...
费哥 · 2008-03-10 · via 博客园 - 费哥

通过对书上例子对文档结构的分析学习组合模式
分析:
定义文档基本元素
从根本上来说,一个文档只是对字符、线、多边形和其他图形元素的一种安排。这些元素记录了文档的整个信息内容。
分析内部表示
然而,一个文档作者通常并不将这些元素看作图形项,而是看作文档的物理结构—行、列、图形、表和其他子结构 。而这些子结构也有自己的子结构。用户界面应该让用户直接操纵这些子结构。
• 保持文档的物理结构。即将文本和图形安排到行、列、表等。(元素如何组织)
• 可视化生成和显示文档。(元素如何显示)
• 根据显示位置来映射文档内部表示的元素。(根据显示获取元素,涉及用户操作)
一些限制条件:
一致对待文本和图形,简化格式及操作机制
一致地对待简单元素和组合元素
为了检查拼写错误和确定连字符的连接点,需要对文本进行分析与一致地对待简单元素和组合元素产生的矛盾。
实现:
层次结构信息的表述通常是通过一种被称为递归组合 (Recursive Composition)的技术来实现的。递归组合可以由较简单的元素逐渐建立复杂的元素.我们将字符和图形从左到右排列形成文档的一行,然后由多行形成一列,再由多列形成一页
我们将为出现在文档结构中的所有对象定义一个抽象类图元(Glyph )。它的子类既定义了基本的图形元素(像字符和图像),又定义了结构元素(像行和列)