??xml version="1.0" encoding="utf-8" standalone="yes"?>
只要是电子商务购物网站,购物车是必不可少的功能?span lang="EN-US">
设计一个功能强大、易用性好的购物Rl对是提高顾客购买兴和达成购买的一个重要因素?span lang="EN-US">
U观国内外的电子商务|站Q做得比较好Q在国内有卓(
www
.joyo.com
Q?span lang="EN-US">,当当Q?span lang="EN-US">www.dangdang.comQ,
q些|站对于购物车的设计各有特色Q但大致是分ZU购物RQ?/font>
MiniCartQ迷你RQ?/font>
?span lang="EN-US">
ShoppingCartQ购物RQ?/font>
?span lang="EN-US">
?/font>
MiniCart
面Q现在流行的安排是左ҎC推荐的相关产品Q右Ҏ
MiniCart
。这是根据用户当前选购商品的一
见下图?span lang="EN-US">
整个动态效果做得非常舒服,很吸引顾客眼球。只是它的实现较复杂?br />
购物车(
ShoppingCart
Q的设计则大同小异,?/font>
Amazon
的设计如下:
?/font>
1
】列功能区:攄该列商品加入购物车的旉、对每个商品的操作按钮?span lang="EN-US">
?/font>
2
】商品详l信息区Q包括品名U、库存、是否免q费及是否需要礼品包装等?span lang="EN-US">
?/font>
3
】h格区Q该商品折后h及节省了多少?span lang="EN-US">
?/font>
4
】数量区Q可以修改购买数量?span lang="EN-US">
?/font>
5
】M功能区:提供操作整个购物车区域(分ؓ
Buy
Now
?span lang="EN-US">Buy Later两个取悦Q?span lang="EN-US">
的操作按钮和l计信息?span lang="EN-US">
l过分析Q大致需要提供给用户操作的功能有Q?span lang="EN-US">
更新数量Q?span lang="EN-US">
删除
(1…n)
Q?span lang="EN-US">
Save
for later
Q?span lang="EN-US">Joyo描述为收藏)Q?span lang="EN-US">1...nQ;
Move to cart
Ud购物车(?span lang="EN-US">Save for later的商品)Q?span lang="EN-US">1?span lang="EN-US">nQ?span lang="EN-US">
而在pȝ内部我们q需要对购物车进行更多的处理Q比如对购物车的商品q行计费、计出
折后hQ统计数据,Ҏ促销zd的商品给֮以明昄提示Q?/font>
Also
buy
{等?span lang="EN-US">
到这里,购物车的业务需求分析研I就q一D落了,下一章将会进行购物R的徏模设计?span lang="EN-US"> W二章:购物车业务徏模?/p>
W者在本文中将会采?/span>
UML
对购物Rq行建模?/span>
对于我们的例子,涉及参与者(
Actor
Q是֮Q业务实体则?/span>
MiniCart
?/span>
Shopping Cart
?/span>
1
、术语解释?/span>
购物?/span>
/ShoppingCart
Q模拟现实的购物车,存放֮选购的商品?/span>
购物车元?/span>
/ShoppingCartItem
Q表C每个加入购物R的商品,
1
个购物R元素对应一个商品?/span>
q你?/span>
/MiniCart
Q购物R的微~版Q只昄最后(或者近几个Q加入购物R商品Q会附加一些促销的信息?/span>
2
、用例(
Use
Case
Q?/span>
用例Q?/span>
Use
Case
Q是֮对购物Rq行直接操作的事件?/span>
l过分析Q得出的用例如下图:
3
、业务实体?/span>
描述如下Q?/p>
1
Q?/span>
ShoppingCart
?/span>
ShoppingCartItem
是聚合关p,?/span>
ShoppingCartItem
生命周期依赖?/span>
ShoppingCart
Q?/span>
2
Q?/span>
MiniCart
和和
ShoppingCartItem
是组合关p,一?/span>
MiniCart
可以呈现多个
ShoppingCartItem
Q?/span>
ShoppingCartItem
生命周期?/span>
MiniCart
没有直接关系Q?/span>
3
Q?/span>
MiniCart
?/span>
ShoppingCart
有依赖关p,如果q没有֮ؓ分配
ShoppingCart
Q则
MiniCart
也ؓI?/span>
4
、时序图?/span>
描述֮和购物R之间的交互关p,q表q对象之间的旉序可以用时序图表达Q但限于幅Q?/p>
W者只对其中的【将商品加入购物车】进行设计?/p>
4.1
基本如下:
程描述如下Q?/p>
֮
服务?/span>
1
Q查看商品;
2
Q将商品加入购物车;
3
Q购物R模块判断可以加入Q?/span>
4
Q将该商品加入购物RQ?/span>
5
Q调用其它接口对购物车进行处理(如计Ҏ口)Q?/span>
6
Q调?/span>
MiniCart
接口l装q回数据Q?/span>
7
Q呈?/span>
MiniCart
面Q?/span>
8
Q查?/span>
MiniCart
面?/span>
4.2
扩展如下:
1
Q?/span>
Add
to cart
Ӟ通过购买验证Q发现顾客等U不以购买当前商品Q则q回提示信息Q流E结束?/span>
2
Q另外还有其它的扩展,比如库存不{,׃很相|所以在本文׃d了?/span>
5
、其它?/span>
下图表达了一个顾客进入网站后选购商品——结帐的zdq程概述?/p>
其中?/span>
Add
to cart
的子程做了描述Q结帐流E不在本文描q范围?/span>
下一将q行实体和接口的具体设计Q请x?/p>
【{载请注明出处Q?/p>
W者现?/span>
www
.probiz.cn
任项目主,q行Z
J2EE
电子商务套g的研发?
产品在线
demo
请垂阅:
http://demo.probiz.cn
后台Q?a >http://demo.probiz.cn/StoreAdmin
W者对
J
2EE
相关技术及电子商务斚w有所研究Q欢q进行交?/span>
QQQ?6399476
MSN
Q?/span>
yanchaomin
@hotmail.com
http://www.aygfsteel.com/Files/liaojiyong/嘉旺炚wpȝ.rar
http://www.zhaopin.com
http://www.szhr.com.cn/
http://www.job88.com/zh-cn/
http://www.cjol.com
国外的则比较多,主要有亚马逊书店(www.amazon.comQ,GAPQ?span lang="EN-US">www.gap.comQ,
www.target.com
Q?/font>
www
.buy.com
{?span lang="EN-US">
MiniCart 是购物R的一个微~版Q一般是昄最后加入购物R的一个商品,当然也有昄多个的,但这要注意尺度,
一般显C最?/font>3个已l很_Q再多到排版过长,影响览?span lang="EN-US">
U业务需求挖掘,来进一步推动销售。具体如?span lang="EN-US">1?span lang="EN-US">
另外一U?/font>
MiniCart
则ؓ
www
.gap.com
独创Q笔者浏览过国内外各大电子商务品及|站Q暂时只是发?/span>
GAP
pȝ|站有这U设计?span lang="EN-US">
读者请注意我用U色圈住的地方,是它的
MiniCart
Q当֮点击
[Add
to cart
]
Ӟpȝ在右上栏的
MiniCart
柔和地展开Q第一部分是顾客刚才加入购物R的商品,如果该商品存在相关促销zd或者是属于某个产品?br />Q购?/font>
A
+B
节?span lang="EN-US">n%{)Q将在第二部分显C相关的推荐?span lang="EN-US">
见图中红色圈圈?span lang="EN-US">
SiteMesh 是以 Servlet 2.3API 为基。它包含一个引擎,用来解析输出的网|者网늉D,军_是否需要应用装饰器以及合ƈ合适的装饰器?/span>
SiteMesh 与应用内Ҏ养I适用的内Ҏ式包?/span> Html ?/span> JSP ?/span> Servlet ?/span> XSL Q甚?/span> CGI ?/span>
1Q?span style="FONT: 7pt 'Times New Roman'; font-size-adjust: none; font-stretch: normal"> 当ؓ Servlet 容器指定一?/span> Http hӞ SiteMesh 截取hQ用一?/span> Servlet Filter Q然后捕?/span> Html l果?/span>
2Q?span style="FONT: 7pt 'Times New Roman'; font-size-adjust: none; font-stretch: normal"> 然后q个 Html 被解析,q且M相关的内定w被提取到一?/span> Page 对象中?/span>
3Q?span style="FONT: 7pt 'Times New Roman'; font-size-adjust: none; font-stretch: normal"> 询问 DecoratorMapper 来确定那一个装饰器需要被应用?/span>
4Q?span style="FONT: 7pt 'Times New Roman'; font-size-adjust: none; font-stretch: normal"> Servlet 向包含装饰器?/span> JSP 发送请求?/span>
5
Q装饰器生成带有?/span>
page
对象中获得的内容?/span>
Html
布局?/span>
Sitemesh
q样的好处是Q所有具体业务页面的开发者无需考虑该页面将处在最l输出页面的那个位置。无需
include
一大堆面Q以后如果系l整体改版,那么只需要改写装饰器面及重新配|装饰规则即可完成,方便快捷Q可l护性极好?/span>
1. ?/span> sitemesh_[version].jar 包加?/span> WEB-INF\lib ?/span>
2. ?/span> web.xml 中增?/span>
表示对系l中所?/span> url h均?/span> sitemesh Filter q行拦截?/span>
3. ?/span> WEB-INF 下配|?/span> sitemesh.xml ?/span> decorator.xml 配置文g?/span>
Sitemesh.xml
Decorator.xml
?/span>
sitemesh.xml
中配|了两个
DecoratorMapper
Q?/span>
PrintableDecoratorMapper
?/span>
ConfigDecoratorMapper
?/span>
PrintableDecoratorMapper
是供打印专用Q在
url
后加?/span>
printable=true
即会使用
decorator.xml
中指定的
printable
装饰器来寚w面进行装饎ͼ一般来说打印页面是只需要打印本面的内容,其余的如头、脚、导航栏、左双单等是不需要打印的Q通过装饰器可以轻村֮现打印页面的qo?/span>
4. 创徏一个装饰器 JSP 面Q我所有装饰器面攑ֈ decorators 目录Qƈ且以 dec[ 功能 ].jsp 作ؓ命名方式Q如 decPrintable.jsp ?/span> decDefault.jsp ?/span>
下面是一个装饰器的代码:
注意?/span> <decorator:?gt; 标签Q这些标{ְ被装饰的 page 面的相应内容作为属性传入?/span> Page 面的相兛_容将攑֜ decorator 标签所指定的位|?/span>
Title Q标?/span>
Head Q头部,一般是公共?/span> js ?/span> css ?/span> meta ?/span>
Body Q被装饰?/span> page 的主体内宏V?/span>
5 ?/span> Sitemesh 通过?/span> sitemesh.xml 中配|?/span> DecoratorMapper 配置映射器,通过?/span> decorator.xml 中配|装饰器文g及其匚w方式。当有页面需要输出到客户端时Q将Ҏq些配置选择相应的装饰器来进行装饎ͼ装饰结果返回给客户界面?/span>
关于 Sitemesh ?/span> api 及详l用说明可以参看其官方|站
http://www.opensymphony.com/sitemesh
http://sourceforge.net/projects/speedframework
http://www.instantiations.com/codepro/index.html
AUTOMATED JAVA TESTING TOOLS
Defect Detection, Repair and Reporting
Automated JUnit Test Generation
JUnit Test Editor
Code Coverage Analysis
Static Code Analysis
Benefit by
|
|
|
|
|
Z容器的用户安全管理系l和JMS 使用ZJ2EE容器的安全验证体p,可以降低~程代码量,完全实现用户权限的配|管理,为J2EE应用pȝ带来用户体系设计的可伸羃性。JMS又是J2EE一个非常具有~性的解决Ҏ?/p>
Java性能相关设计Q内?0文?/strong> QJsp被~译成Serlvet,Servlet实际是U程Q如果需要深L握Web技术,实际是需要理解线E等低层机制?/p>
开发基于Eclipse+Jboss+Mysql的J2EE应用pȝ
Jive源码分析
Jsp/Javabean使用?/b>
XML技术篇
服务器端囑Ş处理?/b>
理论?/b>
基础技术篇
Tomcat中Java/jsp中文问题完全解决Ҏ
三步安装Tomcat 4.0.1+JDK1.4+linux+Mysql
三步安装Tomcat 4.0.1+JDK1.4+Win2000+Mysql