layout | title | |
---|---|---|
default |
|
就是要设计一个类似于word的文档编辑器。
最开始我们考虑的是文档的结构,发现最适合的就是递归组合的形式。用来变现任何复杂的,层次化的结构。
我们给每一个基本的都赋予父亲,孩子,插入,移除,还有最简单的绘制方法,具体的类名为Glyph。
他的结构与渲染的格式化其实是两件事情。主要是格式化是件独立的事情,我们可能会选择不同的算法来针对不同的元素。于是这里在元素之上包装了一层Compositor。这个拥有者Glyph的list,并且拥有这Compositor的实例(格式化的算法)。
在对象中封装算法就是策略模式的目的,让我们不必为了支持一个新的算法而改变Strategy或者他的环境。
//tudo:暂时读的太难受了,先全部了解了再来看例子吧