2018-05-04 《设计模式:可复用面向对象软件的基础》- 实例研究


第二章 实例研究:设计一个文档编辑器

目标:设计一个名为 Lexi 的“所见即所得”的文档编辑器。

遇到的问题

文档结构,格式化,修饰用户界面,支持多种视感标准,支持多种窗口系统,用户操作,拼写检查和连字符。

下面针对上述的7个问题,利用一个或多个设计模式,逐一解决。

文档结构

内部应支持如下几点:
1. 支持文档的物理结构。即将文本和图形安排到行、列、表等。
2. 可视化生成和显示文档
3. 根据显示位置来映射文档内部表示的元素。

此外,应该:
1. 一致对待文本和图形。
2. 一致对待简单元素和元素组。(这样可以允许任意复杂的文档)
(检查拼写错误和确定连字符时,还会需要这个问题)

递归组合

总结

在 Lexi 的设计中使用了8中不同的模式:
1. Composite 表示文档的物理结构
2. Strategy 运行不同的格式化算法
3. Decorator 修饰用户界面
4. Abstract Factory 支持多视感标准
5. Bridge 逊于多个窗口平台
6. Command 支持撤销用户操作
7. Iterator 访问和遍历对象结构
8. Visitor 允许无限扩充分析能力而又不会使文档结构的实现复杂化

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值