`
wwwlgy
  • 浏览: 7968 次
社区版块
存档分类
最新评论

众联BreezeCMS实现思路(一)

阅读更多

  在众联Breeze技术架构中,BreezeCMS是基于BreezeJava和BreezeJs实现的一个通用模型管理平台,长项是进行各种模型管理和管理台功能定制。

        BreezeCMS分成后台模型管理逻辑部分和前台展现两个大部分实现。后台逻辑部分,其核心功能是进行动态的模型数据的查询,管理逻辑实现。这里不是描述的重点。

        前端部展现,支持多模板模型展现。所以前端展现部分又分成两大部分:

        前端框架,组件控制部分。

        前端展现是我们这个章节重点描述的部分,因为模型设计后,重点是管理员的管理模式,所以如何能迅速的达成模型的管理,另外一方面又能很灵活的完成管理定制,是一个重要的平衡点问题。

平台框架部分

平台框架部分是只在平台,又JSP部分实现的基本框架内容,这部分内容,一般很少定制,是整个后台的展示框架,如下:

       如上图,上边,和左边部分为固定的前端展示框架部分。

       平台框架部分,以JSP为主,首先加载了核心数据,也负责将所有定制的gadget加载进来。

       平台部分因为同时也加载一个基本框架的基本样式和页面框架。比如支持ACE的,就会有专门的ACE的页面框架,包括ACE的基本脚本和ACE的基本样式。

       这部分内容大致在page/manager/目录下。

       平台框架不是我们定制的核心基本内容,所以也不是我们的重点。

CMS内容部分的设计思路

这部分是我们的重点,整个内容部分,是组件模式组成的,当然我们使用了decorate模式。

如下图:

每一个方框都是一个组件,所以内容部分,整体上就是由一个个的组件组成的。

其设计模式如下(下面内容都是gadget):

中间内容部分,每次展现的核心控制是Control。如上,我们有一个基类:CMSMgrControl。

Control是一个内容的主体控制类,一个内容样式一个Control。每个Control负责:1.管理和合成所有该Control下面的组件,也就是Decorate。2.提供所有的逻辑操作,包括基本的增删改查等操作。

当点击左边菜单时,将会触发到Selector这个类上,Selector将根据一个url,以确定和创建一个指定的Controlor。

Control的创建规则很简答,根据Url中的type来定义,默认情况下type为list,则使用系统默认的CMSMgrDefaultListControl,如果是type为single则使用CMSMgrDefaultSingleControl。其他的type的值将调用[type]_Control这个Control进行页面显示。

contror是一个页面控制单元了,极端情况下,页面完全可以自定义一个control,然后完全不用任何组件,页面完全自己定义,这个是支持的。

最后Decorate是有页面的组件,这里已经提供了系统中所有的定制组件,也就是说,Control控制一个页面,而在默认情况下,一个页面是由多个组件组成的。所以一个Control默认就加载了自身所需要的所有的Decorate。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics