Jexi设计 (1) Lexi研究

原创 2004年07月16日 18:42:00

从今天开始准备正式写Jexi编辑器,目标就是《设计模式》中的C++例子Lexi:一个图文混排的所见即所得编辑器:

今天在公司闲的时候把《design patterns》的Lexi设计部分仔细看了一遍,整理了一下GoF的设计:

文档结构:应用Composite模式,如图:

通过接口Glyph,应用Composite模式,将多个对象组织起来:

文档格式:通过一系列Formatting Algorithm来实现Formatting,这是由Composite和Composition实现的:

Responsibility Operations what to format void SetComposition(Composition*) when to format virtual void Compose()

用户界面:边框,滚动条等都是通过decorator模式动态装饰的:

Redo/Undo功能:这是通过Command模式实现的,《design patterns》中有详细讲解,至于其他功能,如平台无关窗口,界面风格切换,拼写检查等暂时就不考虑了。

不幸的是,GoF只给了设计思想,没有现成的代码,所以一切还得靠自己。

LEXI编辑器源码

  • 2013年10月30日 22:44
  • 64KB
  • 下载

想做个设计模式一书上的lexi文本编辑器,但不知道做成什么样的

唉...............如题
  • cbbaaa1989
  • cbbaaa1989
  • 2011年03月18日 15:21
  • 488

设计模式Lexi C++版

  • 2015年05月23日 21:57
  • 3.49MB
  • 下载

第二章 实例研究:设计一个文档编辑器--《设计模式-可复用面向对象软件的基础》Erich Gamma

作者小感: 设计模式这本书,对于我来说,初学者看起来比较懵懂,稍微有些枯燥。所以得耐着性子看。看完每一章节,就会有成就感,也确实能够打心眼赞成这种设计模式。 第二章,是从设计一个文档编辑器这个例子...
  • j123kaishichufa
  • j123kaishichufa
  • 2013年07月02日 18:24
  • 2342

Lexi文档编辑器

  • 2012年05月06日 21:10
  • 44KB
  • 下载

设计模式试题-答案

1、设计模式一般用来解决什么样的问题( a) A.同一问题的不同表相 B不同问题的同一表相 C.不同问题的不同表相 D.以上都不是2、下列属于面向对象基本原则的是( c...
  • sanjiaozhen
  • sanjiaozhen
  • 2015年10月01日 23:18
  • 7128

Design Pattern On Road

序 这篇《设计模式之路》是看完四人帮的《design pattern》之后的感悟。《设计模式》重剑无锋,大巧不工。即使有很好的编程基础,很高的英语阅读水平,也未必能窥知全貌。笔者试图将《设计模式...
  • lanjie911
  • lanjie911
  • 2012年07月11日 09:54
  • 281

面试4

目前,Java2平台有3个版本,     它们是适用于小型设备和智能卡的Java 2平台Micro版(Java 2 Platform Micro Edition,J2ME)、     适用于桌面系...
  • sk880609
  • sk880609
  • 2012年10月08日 17:48
  • 6359

Jexi设计 (10) 坐标转换

坐标转换(修订)视图保存(offsetX, offsetY),表示文档相对于视图的起始坐标。文档在绘制时需要这个起始坐标(offsetX, offsetY),表示整个文档应该从此处绘制。上图中:vie...
  • asklxf
  • asklxf
  • 2004年08月03日 00:32
  • 3566

Jexi设计 (6) View设计

以下讨论View的设计。 Document是抽象的文档类,它包含了所有的数据和如何显示的信息,我们已经通过Page,Paragraph,Row等等抽象出来了。 Frame代表窗体对象,负责构造出窗体,...
  • asklxf
  • asklxf
  • 2004年07月27日 19:25
  • 3663
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Jexi设计 (1) Lexi研究
举报原因:
原因补充:

(最多只允许输入30个字)