FBReader里重要的数据结构Model的分析~~分析完它,基本可以自己添加一种文件格式了~
一、万事开头难
正所谓“巧妇难为,无米之炊”。FBReader要想实现能够支持各种文件格式,就需要对来源的数据进行规整化处理,结构化出自己需要数据。求同存异,抽象出相同的特性为父类,而子类保持各自的特性。
大家可以想象,FBReader打开txt和epub文件,它们本身结构就不一样,但是在界面渲染显示的时候,发现它们有什么特别的不同。确实是这样的,FBReader要想实现对各种格式的支持,就需要对这些文件格式的数据进行分析。txt比较简单,都是文本;epub就复杂多了,不但有文本,还有图像,超链接等。所以, 可以认为txt是epub的子集。
FBReader就抽象出一种标识:
也就是上面的接口,FBReader读取txt的话,只要在保存到自己缓存的时候在每段的前面加一个标签“TEXT"就可以;而epub的话,碰到一段(<p>),也是用"TEXT"作为标签,而解析的时候碰到了img,那么保存到自己缓存文件的时候前面就加"IMGE",同理,链接的话就是”CONTROL"等。
所以这个Model的工作就是实现对不同格式的数据,规整出 FBReader自定义的结构想要的数据,并且能保存读取。
(此处省略N多字,全文请看http://www.docin.com/p-424576452.html)
暂时没有评论