面向对象设计模式与原则 第二章.pdf

面向对象设计模式与原则 第二章.pdf

ID:52442855

大小:1.55 MB

页数:32页

时间:2020-03-27

面向对象设计模式与原则 第二章.pdf_第1页
面向对象设计模式与原则 第二章.pdf_第2页
面向对象设计模式与原则 第二章.pdf_第3页
面向对象设计模式与原则 第二章.pdf_第4页
面向对象设计模式与原则 第二章.pdf_第5页
资源描述:

《面向对象设计模式与原则 第二章.pdf》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、下载第2章实例研究:设计一个文档编辑器这一章将通过设计一个称为Lexi的“所见即所得”(或“WYSIWYG”)的文档编辑器,来介绍设计模式的实际应用。我们将会看到在Lexi和类似应用中,设计模式是怎样解决设计问题的。在本章最后,通过这个例子的学习你将获得8个模式的实用经验。图2-1是Lexi的用户界面。文档的所见即所得的表示占据了中间的大矩形区域。文档能够以不同的格式风格自由混合文本和图形。文档的周围是通常的下拉菜单和滚动条,以及一些用来跳到特定页的页码图标。图2-1Lexi的用户界面Lexi的设计是基于Calder开发的文本编辑应用D

2、oc的。[CL92]第2章实例研究:设计一个文档编辑器23下载2.1设计问题我们将考察Lexi设计中的7个问题:1)文档结构对文档内部表示的选择几乎影响Lexi设计的每个方面。所有的编辑、格式安排、显示和文本分析都涉及到这种表示。我们怎样组织这个信息会影响到应用的其他方面。2)格式化Lexi是怎样将文本和图形安排到行和列上的?哪些对象负责执行不同的格式策略?这些策略又是怎样和内部表述相互作用的?3)修饰用户界面Lexi的用户界面包括滚动条、边界和用来修饰WYSIWYG文档界面的阴影。这些修饰有可能随着Lexi用户界面的演化而发生变化。因

3、此,在不影响应用其他方面的情况下,能自由增加和去除这些修饰就十分重要了。4)支持多种视感(look-and-feel)标准Lexi应不需作较大修改就能适应不同的视感标准,如Motif和PresentationManager(PM)等。5)支持多种窗口系统不同的视感标准通常是在不同的窗口系统上实现的。Lexi的设计应尽可能的独立于窗口系统。6)用户操作用户通过不同的用户界面控制Lexi,包括按钮和下拉菜单。这些界面对应的功能分散在整个应用对象中。这里的难点在于提供一个统一的机制,既可以访问这些分散的功能,又可以对操作进行撤消(undo)。

4、7)拼写检查和连字符Lexi是怎样支持像检查拼写错误和决定连字符的连字点这样的分析操作的?当我们不得不添加一个新的分析操作时,我们怎样尽量少修改相关的类?我们将在下面的各节里讨论这些设计问题。每个问题都有一组相关联的目标集合和我们怎样达到这些目标的限制条件集合。在给出特定解决方案之前,我们会详细解释设计问题的目标和限制条件。问题和其解决方案会列举一个或多个设计模式。对每个问题的讨论将在对相关设计模式的简单介绍后结束。2.2文档结构从根本上来说,一个文档只是对字符、线、多边形和其他图形元素的一种安排。这些元素记录了文档的整个信息内容。然而

5、,一个文档作者通常并不将这些元素看作图形项,而是看作文档的物理结构—行、列、图形、表和其他子结构。而这些子结构也有自己的子结构。Lexi的用户界面应该让用户直接操纵这些子结构。例如,一个用户应该能够将一个图表当作一个单元,而不是个别图形原语的一组集合。用户应该能够对表进行整体引用,而不是将表作为非结构化的一堆文本和图形。这有助于使界面简单和直观。为了使Lexi的实现具有类似的性质,我们选择能匹配文档物理结构的内部表示。特别的,内部表示应支持如下几点:¥保持文档的物理结构。即将文本和图形安排到行、列、表等。¥可视化生成和显示文档。¥根据显

6、示位置来映射文档内部表示的元素。这可以使Lexi根据用户在可视化表示中所点击的某个东西来决定用户所引用的文档元素。作者也常从逻辑结构来看文档,即看成句子、段落、节、小节和章。为了使这个例子简单,我们的文档内部表示不显式储存逻辑结构信息。但是我们描述的设计方案同样适用于表述逻辑结构信息的情况。24设计模式:可复用面向对象软件的基础下载除了这些目标外,还有一些限制条件。首先,我们应该一致对待文本和图形。应用界面允许用户在图形中自由的嵌入文本,反之亦然。我们应该避免将图形看作文本的一种特殊情形,或将文本看作图形的特例。否则,我们最后得到的是冗

7、余的格式和操纵机制。机制集合应该使文本和图形都能满足。其次,我们的实现不应该过分强调内部表示中单个元素和元素组之间的差别。Lexi应该能够一致地对待简单元素和组合元素,这样就允许任意复杂的文档。例如,第5行第2列的第10个元素既可以是一个字符,也可以是一个由许多子元素组成的复杂图表。一旦我们知道这个元素能够画出自己并指定了它的区域,那么它怎样显示在页面上和它的显示位置的确定就并不困难了。然而,为了检查拼写错误和确定连字符的连接点,需要对文本进行分析。这就与第二个限制条件产生了矛盾。我们通常并不关心一行上的元素是简单对象还是复杂对象,但是

8、文本分析有时候依赖于被分析的对象。例如,检查多边形的拼写或以连字符连接它是没有意义的。文档内部表示设计应该考虑和权衡这个或其他潜在的彼此矛盾的限制条件。2.2.1递归组合层次结构信息的表述通常是通过一种被称

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。