Skip to content

Latest commit

 

History

History
19 lines (13 loc) · 966 Bytes

2章实例研究.md

File metadata and controls

19 lines (13 loc) · 966 Bytes
layout title
default
{"site.name" => nil}

2章实例研究

就是要设计一个类似于word的文档编辑器。

结构--递归组合

最开始我们考虑的是文档的结构,发现最适合的就是递归组合的形式。用来变现任何复杂的,层次化的结构。

我们给每一个基本的都赋予父亲,孩子,插入,移除,还有最简单的绘制方法,具体的类名为Glyph。

格式化--策略

他的结构与渲染的格式化其实是两件事情。主要是格式化是件独立的事情,我们可能会选择不同的算法来针对不同的元素。于是这里在元素之上包装了一层Compositor。这个拥有者Glyph的list,并且拥有这Compositor的实例(格式化的算法)。

在对象中封装算法就是策略模式的目的,让我们不必为了支持一个新的算法而改变Strategy或者他的环境。

//tudo:暂时读的太难受了,先全部了解了再来看例子吧