原因:
在ipad上做一个类似于ibook的软件,其实相当于用webBrowser展现一套HTML页面(写了个JS框架控制内部数据的加载,所谓内部数据就是一套JSON文件和图片)。
需求:
做一套生成他规定的内部数据的工具,要所见即所得,至少也要和他展现形式差不多的形式(HTML页面)进行编辑保存,PHP编写,支持导入导出。
设计思路:
抛弃书先不谈(因为存储格式未定),理论上:页面和文本块,图片本身是树状结构,然后多个页面构成一个知识点,多个知识点构成一本书,从结构上看树状结构,如果要导入这样的数据进行编辑,那么我的思路是首先构造这样的树(在内存里)之后绘制他们。
页面的绘制:
调用页面类的show方法。如果要绘制页面那么先构造一个页面的DOM树,之后往这个DOM树上挂载控件,给控件赋值(控件自己的show方法)。
知识点的绘制:
一个知识点其实就是页集合,那么我会绘制***个页面(show里调用***个子对象的show),并在页面上添加一个导航条可以上下页滚动(调用指定页的show)。
书本的绘制:
这里直接调用知识点的show会有点问题,因为知识点的滚动需要一个导航条,页的滚动又要一个导航条,我有个不成熟的想法,如果这样,我可以让对象自己的show没有实现方法,使用一个show对象进行绘制,这样我就可以使同一个对象在不同的上下文里有不同的绘制方式
整体上看,就是一个组合设计模式,一个解析器,一个DOM操作对象(用接口封装,使得可以透明的选择不同第三方的库)
结果:
老大觉得,你丫这么麻烦干嘛,写一个操作界面,每个操作用ajax解决,服务端不要架构,用各个小函数解决
问题:请大家客观分析真的有问题吗?
架构设计图:
原文链接:http://www.cnblogs.com/kill-signal/archive/2013/03/19/2970219.html