??xml version="1.0" encoding="utf-8" standalone="yes"?>
唯心在以后学习、研IO2O的过E中Q有新的知识点也会更新此图,不断完善?nbsp; 阅读全文
]]>
]]>
该博客是自主开发,功能和内容均在逐步增加中。所有文章均是原创?br />
对于电子商务销售的q义商品主要分ؓ两种Q?/span>1、无形商品和服务的电子商务;有Ş商品和服务的电子商务?/span>
无Ş商品和服务一般包括:
1Q在U订阅。分为免费订阅和收费订阅Q?/span>
2Q特D信息收Ҏ式。一般分为免费信息和Ҏ信息Q用下载方式提供;
3Q在U服务。每月收取固定的费用Qؓ消费者提供各U在U服务的方式Q比?/span>QQ会员Q邮包月,杀毒包月等Q?/span>
4Q在U娱乐。包括网l游戏的按月、按时收费等?/span>
有Ş商品和服务一般表Cؓ|上销售?/p>
二、品抽象设?/p>
产品目录及品hg在本文讨围内?/p>
Ҏ需求,具体到实际类型的各种“商品”有很多种cdQ其属性差异很大,所以在设计上考虑C后的扩展性,商品设计成为承的方式?/p>
如上图所C。设计一个抽象类ProductQ放|商品的公共属性(部分Q,左边为有形商品,命名?br /> SalesProductQ有形商品包含高度、宽度、长度和重量{无形商品不具备的属性;双为无形商品,包括在线订阅、在U服务,信息下蝲{?/span>
所有关p都是泛化关p,一对一?/p>
对于一般的|上商城的设计,只需设计SalesProduct卛_Q但对于电子商务产品而言Q则需要考虑以后?/span>
扩展性?/p>
׃产品的抽象,所以在对品的创徏考虑使用工厂模式?/p>
public class ProductFactory {
private static ProductFactory productFactory=null;
private ProductFactory(){}
public ProductFactory getInstance(){
if(productFactory==null){
productFactory =new ProductFactory();
}
return productFactory;
}
public Product makeProduct(Integer productType){
//Ҏ产品cdq回相应的?/p>
return null;
}
}
OK。下一步让我们l箋分析SalesProduct更加具体的内宏V?/span>
三、品详l设?/p>
下图?/span>www.joyo.com的媄视品详l页面,׃比较长,所以我只脓出第一,详细可见下面链接Q?/span>
图中用红色圈圈圈住的部分分别Z品标题、演?/span>&导演、h格区、送货方式、用戯分(一U?/span>C2B方式Q、促销推荐、描qͼ及其它属性)?/span>
q有不在图中的信息有Q内容介l、购买此商品的顾客也购买了、查看此商品的顾客也查看了、品参数、本片的主要演员的其它作品、常见问题、用戯论、您可以用以下几U方式找到此商品?/p>
噢!内容太多了。怎么着手呢Q?/p>
我们分析的思\应该考虑那些是品本w的属性、那些是关系密切的外部实体,那些是关p较松散的外部实体?/p>
l过分析的内容分cd下:
您也怼奇怪,我ؓ什么始l都没有h格放入到产品本n呢?因ؓq子商务的销售而言Qh格是变化很频J、而且同一个商品会有多Uh|会员{Q、ƈ和各U的促销形式、进货h格等挂钩。所以如果直接做Z品的自有属性将大大降低了灵zL,D很多业务都无法实玎ͼ或者很困难Q?/p>
考虑到篇q和重点。本文只讨论产品本n的属性设计?/p>
对于一个商城而言Q品种cd多,各类产品的相兛_性各U各P如电׃涉及到演?/span>&导演、一些特定的产品参数Q如视频格式、音频格式等?/span>
而有一些属性则是所有品都共有的,比如产品标题、描q、内容介l等?/p>
所以在设计上需要考虑到这两类属性的区别?/p>
我将之区分ؓ公共属性和自定义属性?/p>
公共属性将攑օSalesProduct表,自定义属性则设计如下Q?/span>
设计考虑Q所?/span>Attribute都必L一个或者多?/span>OptionsQ否则状态ؓ不可用)Q每?/span>
Option都有cd、倹{名U和是否~省{属性。品只会指?/span>OptionQ关pL多对多?/span>
q样Q我们就可以增加演员Attribute?/span>
Q演员在p理pȝ中是实体Q在电子商务销售系l则只是一个值对象了Q?/p>
在演?/span>Attribute下增加梁朝伟、徐静蕾{演员(OptionQ?/span>
然后伤城这个品和?/span>Optionq行兌?/span>
产品参数{属性类伹{?/p>
但是Q我们也发现Q对于自定义属性而言Q有些属性是比较重要的,有些是不重要的?/p>
比如演员Q不单是攑֜标题下这个醒目的地方Q而且q有业务挖掘——本片的主要演员的其它作品?/p>
所以,需要对自定义属性进行进一步的配置。但是这׃属于自定义属性本w的范畴了?/p>
我们会另行设计一个实体来表达q种业务?/p>
【{载请注明出处Q?/p>
W者对J2EE相关技术及电子商务斚w有所研究Q欢q进行交?/span>
QQQ?6399476
MSNQ?/span>yanchaomin@hotmail.com
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>
QQQ?6399476
MSN Q?/span> yanchaomin @hotmail.com
只要是电子商务购物网站,购物车是必不可少的功能?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,
国外的则比较多,主要有亚马逊书店(www.amazon.comQ,GAPQ?span lang="EN-US">www.gap.comQ,
www.target.com
Q?/font>
www
.buy.com
{?span lang="EN-US">
q些|站对于购物车的设计各有特色Q但大致是分ZU购物RQ?/font>
MiniCartQ迷你RQ?/font>
?span lang="EN-US">
ShoppingCartQ购物RQ?/font>
?span lang="EN-US">
MiniCart 是购物R的一个微~版Q一般是昄最后加入购物R的一个商品,当然也有昄多个的,但这要注意尺度,
一般显C最?/font>3个已l很_Q再多到排版过长,影响览?span lang="EN-US">
?/font>
MiniCart
面Q现在流行的安排是左ҎC推荐的相关产品Q右Ҏ
MiniCart
。这是根据用户当前选购商品的一
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">
见下图?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">
整个动态效果做得非常舒服,很吸引顾客眼球。只是它的实现较复杂?br />
购物车(
ShoppingCart
Q的设计则大同小异,?/font>
Amazon
的设计如下:
见图中红色圈圈?span lang="EN-US">
?/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…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">
L意?span lang="EN-US">
【{载请注明出处Q?br />
W者对
J
2EE
相关技术及电子商务斚w有所研究Q欢q进行交?br />
QQQ?6399476
MSN
Q?/font>
yanchaomin
@hotmail.com