电子商务的理想设计模式-CMP

来源:互联网 发布:win10 win7对比 知乎 编辑:程序博客网 时间:2024/05/22 10:37
电子商务网站往往要求具有很高的灵活性,因为电子商务网站面对的是挑剔的顾客,是销售的最前沿。传统基于组件的设计模式(Component-Managed Persistence 托管组件式持久性)在设计电子商务网站的时候显得有点笨拙,每一数据库数据结构的修改都要导致从新编译底层组件,为了避开这个缺点,我将使用(Container-Managed Persistence  托管容器式持久性),也就是EJB中说的CMP。

       我并不会使用JAVA,但是从我阅读过的一些资料来看JAVA实现CMP要比.NET容易,而且更早提出这样的设计模式。从总的大局来说,CMP在开发的时候也比传统的托管组件式持久性来的麻烦,但是一旦完成,对以后的电子商务网站的维护将是很大的灵活性。
        CMP是这样一种设计模式:所有的数据操作无非就是CRUD(Create、Retrieve、Update、Delete)四种,CMP把CRUD映射到一个XML文件中(以后的设计中我将使用Web.config作为其托管),这种映射包括所有的数据库字段,字段数据类型,CRUD操作名称,存储过程名称(我将使用SQL Server开发这个电子商务网站,并全部使用存储过程)。下面是一个映射的片断:
<ContainerMappingId>CartContents</ContainerMappingId>                         // 映射唯一标识
<ContainedClass>CartContents</ContainedClass>
   <Delete>                                                                                                     //CRUD命令映射
    <CommandName>WebShop_Delete_ShoppingCart</CommandName>   // 存储过程名称映射
    <Parameter>
     <ClassMember>CartId</ClassMember>                                                 //数据库字段名称映射
     <ParameterName>@CartId</ParameterName>                                      //存储过程参数映射
     <DbTypeHint>Varchar</DbTypeHint>                                                   //数据类型
     <ParamDirection>Input</ParamDirection>                                              //数据操作方向(与存储过程对应)
     <Size>50</Size>                                                                                    //数据大小
    </Parameter>
   </Delete>
……
……
……

经过映射,以后的数据库字段变化,就不需要更改组件中的参数了,因为组件是从Web.config中读取这些参数的,只要同时更改Web.config文件对应的映射就可以了,不需要重新编译组件。由于CRUD命令也被映射,所以CMP的数据操作甚至都不需要了解数据访问方法,业务逻辑与数据访问层没有如何联系。

        总结一下,使用CMP的好处:首先,数据库变化不需要重新编译数据操作层,这个是最直接的体现,也是最好理解的。 其次,由于数据操作被封装再CMP中,业务对象数据访问没有如何联系,这样就可以很方便的使用多种数据来源,比如 XML,Access,SQL Server ,Web Services 。第三,我曾经写过一些自己经常使用的数据库操作层,用来执行存储过程的,这样在编写其他项目的时候只要稍微做一点修改,从新编译就可以使用,如果使用了CMP,根本就不需要编译,因为所以的数据定义都在Web.config做了定义,只要按照相应格式更改就可以直接使用。
    缺点:开发过程相对托管组件式持久性复杂,在Web Application中才被应用,Windows程序应用少。
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 右半边脸麻木了怎么办 左边脸突然肿了怎么办 左半边脸皮肤疼怎么办 脸内侧的肉肿了怎么办 上火引起的脸肿怎么办 脸肿里面有硬块怎么办 内分泌失调引起的肥胖怎么办 宝宝接种证丢了怎么办 不给补办接种证怎么办 儿童接种证丢了怎么办 疫苗接种本丢了怎么办 脊灰滴剂滴多了怎么办 鞋小了挤脚趾头怎么办 大母脚趾头疼是怎么办 小脚趾内侧长茧怎么办 小脚趾肿了很痛怎么办 穿袜子大脚趾痛怎么办 脚指头长水泡很痒怎么办 走路脚打起泡了怎么办 剪完脚趾甲肿了怎么办 大脚趾关节处疼怎么办 战士10穿不进去怎么办 脚上皮肤干燥起皮怎么办 脚趾头冻了很痒怎么办 大脚趾里面有脓怎么办 大脚趾肉肿了怎么办 大脚趾边上肿了怎么办 大母脚趾关节疼怎么办 大脚趾有点歪了怎么办 大脚趾扭伤肿了怎么办 大脚趾外翻怎么办 知乎 颈椎带着胳膊疼怎么办 胳膊酸困无力是怎么办 腰疼引起的腿麻怎么办 手臂到手指麻痛怎么办 拔完智齿特别疼怎么办 躺着胃烧的难受怎么办 喝酒胃烧的难受怎么办 舌头破了特别疼怎么办 舌头又厚又大怎么办 牙齿咬到舌头了怎么办