第2章 建造者模式
提出问题
问题描述:要求根据原始数据创建文本和HTML两种风格的列表。假设列表只到二级,原始
数据格式为 标题1:子标题1,子标题2;标题2,子标题1,子标题2 ,一级列表之间采用分号分隔,子
列表之间采用逗号分隔。
文本列表格式如下:
标题1
-子标题1
-子标题2
标题2
-子标题1
-子标题2
HTML列表格式如下:
<li>标题1
<ul><li>子标题1</li>
<li>子标题2</li>
</ul></li>
<li>标题2
<ul><li>子标题1</li>
<li>子标题2</li>
</ul></li>
根据问题描述,对象的构建过程比较复杂,需要先对源数据进行解析,再逐个创建列表的各个部
分,最终组成完整的列表对象。这里设计 TextListBuilder 和 HTMLListBuilder 两个类用于创建
两种格式的列表,主要创建过程封装在 build() 方法中。具体代码如下所示:
评论0