一种基于门面模式的产品信息控制系统及方法

文档序号:6581943阅读:724来源:国知局
专利名称:一种基于门面模式的产品信息控制系统及方法
技术领域
本发明涉及信息系统领域,特别涉及一种基于门面模式的产品信息控制系统及 方法。
背景技术
Internet是现今人类使用最为广泛同时更新也是最快的技术。随着技术的发展, Internet已经应用已经涉及到我们生活的方方面面。例如网上商城,在过去,开商店一 般都是指实体店,地段,面积一直都是需要很多本钱的,并且承担着一定的风险。而现 如今,通过网上商城,我们可以很快捷地将自己想要卖的商品放在网上。随着电脑的普 及,网上购物已经成为一种时尚,一种消费的方式。
对于网上商城,不管是网上书店还是网上销售其他物品的系统,其作为一个信 息系统,其使用的设计模式均是有所不同,各有优势的。发明内容
本发明的目的是提供一种基于门面模式的产品信息控制系统及方法,其能通过 一个接口实现外部用户与信息系统的交互。
一方面,本发明提供一种基于门面模式的产品信息控制系统,其基于JSP技术 实现,包括
数据库,存储产品信息以及用户信息;
界面显示单元,通过JSP页面显示所述系统存储的产品信息以及用户对所述产 品的操作选项;
购物车单元,用以集中存放并显示用户选择形成的包含产品信息的订单列表;
订单处理单元,用以对所述购物车单元的订单列表进行处理;
所述控制系统还包括一门面接口,所述系统的各单元通过所述门面接口响应外 部的用户请求,所述系统的Struts控制器的模型组件执行与所述用户请求对应的业务逻 辑,将执行结果返回至所述系统各单元。
所述购物车单元以产品的id、数量、单价、总价为一个单位封装为一个对象, 通过修改、删除按钮对所述对象进行相应的操作。
所述订单处理单元将所述购物车单元中所有信息转换为订单对象,通过调用业 务逻辑持久化所述订单对象并插入所述数据库存储。
所述界面显示单元的JSP页面使用客户化标签,所述客户化标签源自Struts HTML、Bean 和 Logic 标签库。
所述Struts控制器包括Action Servlet组件,用以作为Struts中央控制器; Request Processor组件,用以作为系统每个子应用模块单元的请求处理器;Action组件,用以负责处理一项具体的业务。
另一方面,本发明还提供一种基于门面模式的产品信息控制方法,其基于JSP技术实现,包括以下步骤建立数据库,存储产品信息以及用户信息;建立一门面接口,响应外部的用户请求,配合所述系统的Struts控制器的模型组 件执行与所述用户请求对应的业务逻辑;通过JSP页面显示所述系统存储的产品信息以及用户对所述产品的操作选项;建立一购物车单元,用以集中存放并显示用户选择形成的包含产品信息的订单 列表;建立一订单处理单元,根据用户的请求,用以对所述购物车单元的订单列表进 行处理。所述购物车单元以产品的id、数量、单价、总价为一个单位封装为一个对象, 通过修改、删除按钮对所述对象进行相应的操作。所述订单处理单元将所述购物车单元中所有信息转换为订单对象,通过调用业 务逻辑持久化所述订单对象并插入所述数据库存储。所述界面显示单元的JSP页面使用客户化标签,所述客户化标签源自Struts HTML、Bean 和 Logic 标签库。所述Struts控制器包括Action Servlet组件,用以作为Struts中央控制器; Request Processor组件,用以作为系统每个子应用模块单元的请求处理器;Action组件,
用以负责处理一项具体的业务。采用本发明所述的一种基于门面模式的产品信息控制系统及方法,其通过建立 门面模式的门面接口来实现外部用户和信息系统的交互。门面模式工作时,使用门面对 象的客户端无需直接访问系统对象,而是由门面对象将客户端的请求传递给适当的系统 对象,让系统对象完成实际的工作。这就是说,由门面对象来调用相关系统的方法,并 把系统的接口转换成客户端需要的接口。客户端只和一个门面对象打交道。这样一来就 降低了系统之间的依赖性和复杂性。


图1是门面模式的原理示意图;图2是本发明所述控制系统的原理框图;图3是本发明所述控制方法的流程图。
具体实施例方式下面结合附图和实施例进一步说明本发明的技术方案,本发明以在线书籍控制 系统为实施例。首先介绍一下门面模式(Facade),指的是外部用户对象通过一个统一的门面的 对象来与一个系统进行交互。门面模式为系统中的一组接口,提供一个统一的门面供外 部对象访问。也就是门面模式定义了一个更高层次的接口让外部对象容易使用这个系 统。参见图1,外部与一个子系统的通信必须通过一个统一的门面(Facade)对象进 行,这就是门面模式。门面模式要求一个子系统的外部与其内部的通信必须通过一个统一的门面(Facade)对象进行。门面模式提供一个高层次的接口,使得子系统更易于使 用。它的角色包括门面角色和子系统角色,门面(Facade)角色客户端可以调用这个 角色的方法。在正常情况下,本角色会将所有从客户端发来的请求委派到相应的子系统 去。子系统(Subsystem)角色每一个子系统都可以被客户端直接调用,或者被门面角色 调用。子系统并不知道门面的存在,对于子系统而言,门面仅仅是另一个客户端而已。 在门面模式中,通常只需要一个门面类,并且此门面类只有一个实例,换言之它是一个 单例类。但如果一个系统有好几个子系统的话,每个子系统都可有一个门面类,整个系 统可以有数个门面类。如果一个门面模式不能将子系统的所有行为提供给外界,那么可 以通过修改或继承门面类的方法将子系统的行为提供给外界。但是,如果一个子系统没 有某个行为,想通过修改或继承门面类的办法来提供这个新的行为是错误的。facade是 构筑成系统的其他参与者的单一窗口,facade参与者对系统外部提供较高且单一的接口, facade参与者让复杂的内容看起来很简单。参见图2,图2是本发明所述一种基于门面模式的产品信息控制系统100,包 括数据库110,存储书籍信息以及用户信息;用户验证单元120,所述用户登陆所述系统时,所述用户验证单元120将其输入 的用户名和密码与所述数据库110存储用户信息的进行比对,若一致则进入所述界面显 示单元130。界面显示单元130,通过JSP页面显示所述系统存储的书籍信息以及用户对所述 书籍的操作选项。所述JSP页面使用客户化标签,所述客户化标签源自StrutsHTML、 Bean和Logic标签库。购物车单元140,用以集中存放并显示用户选择形成的包含书籍信息的订单列 表。所述订单列表具体包括书籍名称、书籍价格以及订单配送方式。所述购物车单元 140以产品的id、数量、单价、总价为一个单位封装为一个对象,通过修改、删除按钮对 所述对象进行相应的操作。订单处理单元150,用以对所述购物车单元140的订单列表进行处理。所述订单 处理单元150将所述购物车单元140中所有信息转换为订单对象,通过调用业务逻辑持久 化所述订单对象并插入所述数据库110存储。一门面接口 160,所述系统的各单元通过所述门面接口 160响应外部的用户请 求,所述系统的Struts控制器的模型组件执行与所述用户请求对应的业务逻辑,将执行结 果返回至所述系统各单元。下面介绍一下实体设计,对于本发明所述系统100的数据库110,其存储了很 多实体文件Product(商品),每本书都有一个属于秘书的类型,所以还要有一个类型 实体Category(种类),而且系统中所有功能都是由用户驱动的,所以还在有一个用 户实体EsUn_B00k_User(用户),每个用户都有自己的地址信息,所以有一个地址实 体Contactinfo(用户信息)。当用户选购完自己的商品后,必须为他生成一份定单存 放在数据库110中,所以还在有一个定单实体orders (定单)。每一个定单都有它的 一个状态(比如已发货,待发货,发货中),所以也要为定单状态建立一个实体 OrderStatus(定单状态)。定单中一个有款不同类型的书籍,所以还在为它创建一个条目实体(Items)条目。每一个定单都有它的配送方式,所以还要为定单配送方式建立一个 实体PayWay (定单配送方式)。 实体与实体之间存在三种关系一对一、一对多和多对多。本系统100中的实 体之间存在以下关系 Esun_Book_User (用户)和Contactinfo (用户信息)实体一对一。一个客户只
能填写一个有效地址,一个有效地址也只能对应一个客户。Esun_Book_User(用户)和Orders(定单)实体一对多。一个客户有多个订
单,而一个订单只能属于一个客户。Category (种类)和Product (商品)实体一对多。一件商品只有一个类别,而
一个类别可以对应多件商品。Item(条目)禾Π Product (商品)实体一对一。一个条目对应一件商品,一件 商品对应一个条目。Item(条目)和Orders (定单)实体一对多。一个条目对应一张定单,一张定 单可以拥有多个条目。PayWay (定单配送方式)和Orders (定单)实体一对多。一张定单只能有一 个配送方式,而一种配送方式可以对应多张定单。本系统100中的界面显示单元130的实现,也可以称之为表示层设计表示 层,即显示给用户看的页面。在本系统100的JSP页面中使用客户化标签,可以把java 程序代码和JSP页面分离,使JSP页面重于生成动态网页,而不涉及应用逻辑。本系 统100的所有都页面都使用了 StratsHTML、Bean和Logic标签库中的标签。客户化标 签有以下优点标签具有可重用性,因此可以提高开发效率;可以在JSP页面以静态 或动态的方式客户化设置自定义标签的属性;标签可以访问JSP网页中的所有对象,如 HttpServletRequest和HttpServletResponse等;标签可以相互嵌套,来完成逻辑;标签可 以使JSP页面变得更加简洁,提高可读性。本系统100的控制层的设计实现本系统100的各单元基于Struts控制器接收用 户请求,并调用Struts控制器的模型组件执行与所述用户请求对应的业务逻辑,将执行结 果返回至所述系统各单元。所述Struts控制器包括ActionServlet组件,用以作为Struts 中央控制器;RequestProcessor组件,用以作为系统每个子应用模块单元的请求处理器; Action组件,用以负责处理一项具体的业务。Struts控制器组件负责接收用户请求、更新模型,以及选择合适视图组件返回给 用户。控制器组件有助于疳模型层和视图层分离,有了这种分离,就可在同一个模型的 基础上得心应手地开发多种类型的视图。本系统采用Struts框架的控制器组件来预处理所有的客户请求,这种集中控制方 式可以满足MVC设计模式的两大需求首先,控制器在用户输入数据和模型之间充当媒 介翻译者的角色,提供一些通用功能。如安全、登入和其他针对具体用户请求的重要服 务,当系统的这些通用功能出现需求变更时,不需要修改整个应用,只需要修改局部的 控制器组件即可。其次,由于所有的请求都经过控制器过滤,因此可以降低视图组件之 间,以及视图组件和模型组件之间的相互依赖关系,提高每个组件的相对独立性。由控 制器组件来决定把合适的视图组件返回给用户,这可以减少视图组件之间直接的、错综
7复杂的链接关系,使应用更加灵活,便于维护。
本系统100的各单元模块的代码实现
1、界面显示单元130,界面显示单元130通过JSP页面进行可视化显示,下面的 代码实现一个JSP页面,该页面具有书籍显示列表,并具有指向购物
public List getPartOfProduct(int firstNun.int max,String type){ Session session=sessionfactory.openSession(); String hql="fron Product*车的Query query=session.createQuery(hql); query.setFirstResult(firstNun); querp.setMaxResults(nax); List products=query.list(); return products;链接。
2、购物车单元140,下面的代码实现购物车单元140的一个页面,具体包括书 籍名称、书籍价格以及订单配送方式等
public IlctioiiForird ㈨ti_pping napping, ActiooFori forn, Http_Me释st request, HttpSergletResponse response) tires Exception { Iten IiiMew lten();S_ingCartForM scform=(SlioppiiigCartFori) fori; liiif.setteiscfori.getNiiiiO);line.setP_u 咁 shDpp_art^tPr_ct(Integer.parselnt(哪吧 t.getPaMter("pt"_i;tiir)川; stioppingcart.updatfProiliictllinf); request.getSfssionO.setllttritiuteC'stioppiiigcart", slioppingcart); return napping.fiitdForiHnlC'success");}public OctionForird r_e(fictio_piiig napping, HctionFori fori, flttpServlet_est request,HUpSml咖spouse response) tans Exception { ItiVi liirnen ItM();line.setPr_t(s_ingMrt.getP_ct(Meger.parsflnt(reflue比 getParafterrptetid")川; s_ingc3il_yfP_ct(lii)p); request.getSessionO.setllttriliuteC'slioppiiigcart", slioppingcart); return najiping.fiiiilForirilC'success");
3、订单处理单元150,下面的代码实现该单元的一个页面,其显示了购物车单 元包括的订单信息,并具有对订单进行修改和删除的连接
权利要求
1.一种基于门面模式的产品信息控制系统,其基于JSP技术实现,包括 数据库,存储产品信息以及用户信息;界面显示单元,通过JSP页面显示所述系统存储的产品信息以及用户对所述产品的 操作选项;购物车单元,用以集中存放并显示用户选择形成的包含产品信息的订单列表; 订单处理单元,用以对所述购物车单元的订单列表进行处理; 其特征在于,所述控制系统还包括一门面接口,所述系统的各单元通过所述门面接 口响应外部的用户请求,所述系统的Struts控制器的模型组件执行与所述用户请求对应的 业务逻辑,将执行结果返回至所述系统各单元。
2.如权利要求1所述的系统,其特征在于,所述购物车单元以产品的id、数量、 单价、总价为一个单位封装为一个对象,通过修改、删除按钮对所述对象进行相应的操 作。
3.如权利要求1或2所述的系统,其特征在于,所述订单处理单元将所述购物车单元 中所有信息转换为订单对象,通过调用业务逻辑持久化所述订单对象并插入所述数据库 存储。
4.如权利要求3所述的系统,其特征在于,所述界面显示单元的JSP页面使用客户化 标签,所述客户化标签源自Struts HTML、Bean和Logic标签库。
5.如权利要求4所述的系统,其特征在于,所述Struts控制器包括ActionServlet组 件,用以作为Struts中央控制器;Request Processor组件,用以作为系统每个子应用模块单元的请求处理器;Action组件,用以负责处理一项具体的业务。
6.—种基于门面模式的产品信息控制方法,其基于JSP技术实现,其特征在于,包括 以下步骤建立数据库,存储产品信息以及用户信息;建立一门面接口,响应外部的用户请求,配合所述系统的Struts控制器的模型组件执 行与所述用户请求对应的业务逻辑;通过JSP页面显示所述系统存储的产品信息以及用户对所述产品的操作选项; 建立一购物车单元,用以集中存放并显示用户选择形成的包含产品信息的订单列表;建立一订单处理单元,根据用户的请求,用以对所述购物车单元的订单列表进行处理。
7.如权利要求6所述的方法,其特征在于,所述购物车单元以产品的id、数量、 单价、总价为一个单位封装为一个对象,通过修改、删除按钮对所述对象进行相应的操作。
8.如权利要求6或7所述的方法,其特征在于,所述订单处理单元将所述购物车单元 中所有信息转换为订单对象,通过调用业务逻辑持久化所述订单对象并插入所述数据库 存储。
9.如权利要求8所述的方法,其特征在于,所述界面显示单元的JSP页面使用客户化 标签,所述客户化标签源自Struts HTML、Bean和Logic标签库。
10.如权利要求9所述的方法,其特征在于,所述Struts控制器包括ActionServlet组件,用以作为Struts中央控制器;Request Processor组件,用以作为系统每个子应用模块单元的请求处理器;Action组件,用以负责处理一项具体的业务。
全文摘要
本发明揭示了一种基于门面模式的产品信息控制系统及方法,其通过建立门面模式的门面接口来实现外部用户和信息系统的交互。门面模式工作时,使用门面对象的客户端无需直接访问系统对象,而是由门面对象将客户端的请求传递给适当的系统对象,让系统对象完成实际的工作。这就是说,由门面对象来调用相关系统的方法,并把系统的接口转换成客户端需要的接口。客户端只和一个门面对象打交道。这样一来就降低了系统之间的依赖性和复杂性。
文档编号G06Q30/00GK102024231SQ20091019620
公开日2011年4月20日 申请日期2009年9月23日 优先权日2009年9月23日
发明者唐奇, 宋涛 申请人:上海杉达学院
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1