Jexi设计 (1) Lexi研究

博主准备开发Jexi编辑器,目标参照《设计模式》中的C++例子Lexi。在设计上,文档结构应用Composite模式,文档格式由Composite和Composition实现,用户界面用decorator模式装饰,Redo/Undo功能通过Command模式实现,不过需自行编写代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

从今天开始准备正式写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只给了设计思想,没有现成的代码,所以一切还得靠自己。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值