﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-活到老，学到老-随笔分类-设计模式</title><link>http://www.blogjava.net/simonshen/category/48249.html</link><description /><language>zh-cn</language><lastBuildDate>Thu, 07 Apr 2011 16:33:19 GMT</lastBuildDate><pubDate>Thu, 07 Apr 2011 16:33:19 GMT</pubDate><ttl>60</ttl><item><title>观察者模式</title><link>http://www.blogjava.net/simonshen/archive/2011/04/07/347745.html</link><dc:creator>simon.shen</dc:creator><author>simon.shen</author><pubDate>Thu, 07 Apr 2011 14:29:00 GMT</pubDate><guid>http://www.blogjava.net/simonshen/archive/2011/04/07/347745.html</guid><wfw:comment>http://www.blogjava.net/simonshen/comments/347745.html</wfw:comment><comments>http://www.blogjava.net/simonshen/archive/2011/04/07/347745.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/simonshen/comments/commentRss/347745.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/simonshen/services/trackbacks/347745.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: &nbsp;&nbsp;&nbsp;&nbsp;概念：观察者模式定义了一对多依赖，这样一来，当一个对象改变状态时，它的所有依赖者都会收到通知并自动更新。&nbsp;&nbsp;&nbsp;&nbsp;举个网上商城的例子，比如很多顾客对某个商品感兴趣，把商品收藏，当该商品降价、促销、有货了等事件发生时，就会发Email通知顾客。&nbsp;&nbsp;&nbsp;&nbsp;UML图...&nbsp;&nbsp;<a href='http://www.blogjava.net/simonshen/archive/2011/04/07/347745.html'>阅读全文</a><img src ="http://www.blogjava.net/simonshen/aggbug/347745.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/simonshen/" target="_blank">simon.shen</a> 2011-04-07 22:29 <a href="http://www.blogjava.net/simonshen/archive/2011/04/07/347745.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>策略模式</title><link>http://www.blogjava.net/simonshen/archive/2011/04/06/347744.html</link><dc:creator>simon.shen</dc:creator><author>simon.shen</author><pubDate>Wed, 06 Apr 2011 14:56:00 GMT</pubDate><guid>http://www.blogjava.net/simonshen/archive/2011/04/06/347744.html</guid><wfw:comment>http://www.blogjava.net/simonshen/comments/347744.html</wfw:comment><comments>http://www.blogjava.net/simonshen/archive/2011/04/06/347744.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/simonshen/comments/commentRss/347744.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/simonshen/services/trackbacks/347744.html</trackback:ping><description><![CDATA[<span style="font-size: 10pt"><span style="font-size: 10pt">&nbsp;&nbsp;&nbsp;&nbsp;从今天开始，把常用的设计模式都简单的整理一遍，希望每个星期能至少整理2个模式吧，先从简单的策略模式开始。<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;<strong>概念：</strong>它定义了一系列的算法，并将每一个算法封装起来，而且使它们还可以相互替换。策略模式让算法的变化不会影响到使用算法的客户。<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;策略模式很简单，实际上就是OO中的多态，举个例子，某商场要进行促销，对于普通顾客打88折，对于银卡客户在88折基础上再满400减160，对于金卡客户在88折基础上再满400减200。<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="font-size: 10pt"><strong>UML图如下所示：<br />
</strong>&nbsp;&nbsp;&nbsp;&nbsp;<img border="0" alt="" src="http://www.blogjava.net/images/blogjava_net/simonshen/strategy_uml.PNG" width="500" height="187" /><br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;接口DiscountStrategy代码如下：<br />
&nbsp;&nbsp;&nbsp;&nbsp; </span>
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><span style="font-size: 10pt"><img id="Codehighlighter1_34_76_Open_Image" onclick="this.style.display='none'; Codehighlighter1_34_76_Open_Text.style.display='none'; Codehighlighter1_34_76_Closed_Image.style.display='inline'; Codehighlighter1_34_76_Closed_Text.style.display='inline';" alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" /><img style="display: none" id="Codehighlighter1_34_76_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_34_76_Closed_Text.style.display='none'; Codehighlighter1_34_76_Open_Image.style.display='inline'; Codehighlighter1_34_76_Open_Text.style.display='inline';" alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" /><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">interface</span><span style="color: #000000">&nbsp;DiscountStrategy&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_34_76_Closed_Text"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span></span><span id="Codehighlighter1_34_76_Open_Text"><span style="font-size: 10pt"><span style="color: #000000">{<br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">double</span><span style="color: #000000">&nbsp;discount(</span><span style="color: #0000ff">double</span></span><span style="color: #000000"><span style="font-size: 10pt">&nbsp;sum);<br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" />}</span></span></span></div>
</span><br />
<span style="font-size: 10pt">&nbsp;&nbsp;&nbsp;&nbsp;类GeneralDiscountStrategy类代码如下：<br />
&nbsp;&nbsp;&nbsp;&nbsp; </span>
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><span style="font-size: 10pt"><img id="Codehighlighter1_65_157_Open_Image" onclick="this.style.display='none'; Codehighlighter1_65_157_Open_Text.style.display='none'; Codehighlighter1_65_157_Closed_Image.style.display='inline'; Codehighlighter1_65_157_Closed_Text.style.display='inline';" alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" /><img style="display: none" id="Codehighlighter1_65_157_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_65_157_Closed_Text.style.display='none'; Codehighlighter1_65_157_Open_Image.style.display='inline'; Codehighlighter1_65_157_Open_Text.style.display='inline';" alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" /><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">class</span><span style="color: #000000">&nbsp;GeneralDiscountStrategy&nbsp;</span><span style="color: #0000ff">implements</span><span style="color: #000000">&nbsp;DiscountStrategy&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_65_157_Closed_Text"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span></span><span id="Codehighlighter1_65_157_Open_Text"><span style="font-size: 10pt"><span style="color: #000000">{<br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" /><br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;@Override<br />
<img id="Codehighlighter1_121_154_Open_Image" onclick="this.style.display='none'; Codehighlighter1_121_154_Open_Text.style.display='none'; Codehighlighter1_121_154_Closed_Image.style.display='inline'; Codehighlighter1_121_154_Closed_Text.style.display='inline';" alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" /><img style="display: none" id="Codehighlighter1_121_154_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_121_154_Closed_Text.style.display='none'; Codehighlighter1_121_154_Open_Image.style.display='inline'; Codehighlighter1_121_154_Open_Text.style.display='inline';" alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">double</span><span style="color: #000000">&nbsp;discount(</span><span style="color: #0000ff">double</span><span style="color: #000000">&nbsp;sum)&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_121_154_Closed_Text"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span></span><span id="Codehighlighter1_121_154_Open_Text"><span style="font-size: 10pt"><span style="color: #000000">{<br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;sum&nbsp;</span><span style="color: #000000">*</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">0.88</span></span><span style="color: #000000"><span style="font-size: 10pt">;<br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></span><span style="color: #000000"><br />
<span style="font-size: 10pt"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" /><br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" />}</span></span></span></div>
<br />
<span style="font-size: 10pt">&nbsp;&nbsp;&nbsp;&nbsp;类SilverDiscountStrategy类代码如下：<br />
&nbsp;&nbsp;&nbsp;&nbsp; </span>
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><span style="font-size: 10pt"><img id="Codehighlighter1_64_236_Open_Image" onclick="this.style.display='none'; Codehighlighter1_64_236_Open_Text.style.display='none'; Codehighlighter1_64_236_Closed_Image.style.display='inline'; Codehighlighter1_64_236_Closed_Text.style.display='inline';" alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" /><img style="display: none" id="Codehighlighter1_64_236_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_64_236_Closed_Text.style.display='none'; Codehighlighter1_64_236_Open_Image.style.display='inline'; Codehighlighter1_64_236_Open_Text.style.display='inline';" alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" /><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">class</span><span style="color: #000000">&nbsp;SilverDiscountStrategy&nbsp;</span><span style="color: #0000ff">implements</span><span style="color: #000000">&nbsp;DiscountStrategy&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_64_236_Closed_Text"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span></span><span id="Codehighlighter1_64_236_Open_Text"><span style="font-size: 10pt"><span style="color: #000000">{<br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" /><br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;@Override<br />
<img id="Codehighlighter1_120_234_Open_Image" onclick="this.style.display='none'; Codehighlighter1_120_234_Open_Text.style.display='none'; Codehighlighter1_120_234_Closed_Image.style.display='inline'; Codehighlighter1_120_234_Closed_Text.style.display='inline';" alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" /><img style="display: none" id="Codehighlighter1_120_234_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_120_234_Closed_Text.style.display='none'; Codehighlighter1_120_234_Open_Image.style.display='inline'; Codehighlighter1_120_234_Open_Text.style.display='inline';" alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">double</span><span style="color: #000000">&nbsp;discount(</span><span style="color: #0000ff">double</span><span style="color: #000000">&nbsp;sum)&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_120_234_Closed_Text"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span></span><span id="Codehighlighter1_120_234_Open_Text"><span style="font-size: 10pt"><span style="color: #000000">{<br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sum&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;sum&nbsp;</span><span style="color: #000000">*</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">0.88</span></span><span style="font-size: 10pt"><span style="color: #000000">;<br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;t&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;(</span><span style="color: #0000ff">int</span><span style="color: #000000">)&nbsp;sum&nbsp;</span><span style="color: #000000">/</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">400</span></span><span style="font-size: 10pt"><span style="color: #000000">;<br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sum&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;sum&nbsp;</span><span style="color: #000000">-</span><span style="color: #000000">&nbsp;t&nbsp;</span><span style="color: #000000">*</span><span style="color: #000000">&nbsp;16</span><span style="color: #000000">0</span></span><span style="font-size: 10pt"><span style="color: #000000">;<br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span></span><span style="color: #000000"><span style="font-size: 10pt">&nbsp;sum;<br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></span><span style="color: #000000"><br />
<span style="font-size: 10pt"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" />}</span></span></span></div>
<br />
<span style="font-size: 10pt">&nbsp;&nbsp;&nbsp;&nbsp;类GoldenDiscountStrategy代码如下：<br />
&nbsp;&nbsp;&nbsp;&nbsp; </span>
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><span style="font-size: 10pt"><img id="Codehighlighter1_64_236_Open_Image" onclick="this.style.display='none'; Codehighlighter1_64_236_Open_Text.style.display='none'; Codehighlighter1_64_236_Closed_Image.style.display='inline'; Codehighlighter1_64_236_Closed_Text.style.display='inline';" alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" /><img style="display: none" id="Codehighlighter1_64_236_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_64_236_Closed_Text.style.display='none'; Codehighlighter1_64_236_Open_Image.style.display='inline'; Codehighlighter1_64_236_Open_Text.style.display='inline';" alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" /><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">class</span><span style="color: #000000">&nbsp;GoldenDiscountStrategy&nbsp;</span><span style="color: #0000ff">implements</span><span style="color: #000000">&nbsp;DiscountStrategy&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_64_236_Closed_Text"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span></span><span id="Codehighlighter1_64_236_Open_Text"><span style="font-size: 10pt"><span style="color: #000000">{<br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" /><br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;@Override<br />
<img id="Codehighlighter1_120_234_Open_Image" onclick="this.style.display='none'; Codehighlighter1_120_234_Open_Text.style.display='none'; Codehighlighter1_120_234_Closed_Image.style.display='inline'; Codehighlighter1_120_234_Closed_Text.style.display='inline';" alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" /><img style="display: none" id="Codehighlighter1_120_234_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_120_234_Closed_Text.style.display='none'; Codehighlighter1_120_234_Open_Image.style.display='inline'; Codehighlighter1_120_234_Open_Text.style.display='inline';" alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">double</span><span style="color: #000000">&nbsp;discount(</span><span style="color: #0000ff">double</span><span style="color: #000000">&nbsp;sum)&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_120_234_Closed_Text"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span></span><span id="Codehighlighter1_120_234_Open_Text"><span style="font-size: 10pt"><span style="color: #000000">{<br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sum&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;sum&nbsp;</span><span style="color: #000000">*</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">0.88</span></span><span style="font-size: 10pt"><span style="color: #000000">;<br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;t&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;(</span><span style="color: #0000ff">int</span><span style="color: #000000">)&nbsp;sum&nbsp;</span><span style="color: #000000">/</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">400</span></span><span style="font-size: 10pt"><span style="color: #000000">;<br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sum&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;sum&nbsp;</span><span style="color: #000000">-</span><span style="color: #000000">&nbsp;t&nbsp;</span><span style="color: #000000">*</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">200</span></span><span style="font-size: 10pt"><span style="color: #000000">;<br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span></span><span style="color: #000000"><span style="font-size: 10pt">&nbsp;sum;<br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></span><span style="color: #000000"><br />
<span style="font-size: 10pt"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" />}</span></span></span></div>
<br />
<span style="font-size: 10pt">&nbsp;&nbsp;&nbsp;&nbsp;类Cashier代码如下：<br />
&nbsp;&nbsp;&nbsp;&nbsp; </span>
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><span style="font-size: 10pt"><img id="Codehighlighter1_21_676_Open_Image" onclick="this.style.display='none'; Codehighlighter1_21_676_Open_Text.style.display='none'; Codehighlighter1_21_676_Closed_Image.style.display='inline'; Codehighlighter1_21_676_Closed_Text.style.display='inline';" alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" /><img style="display: none" id="Codehighlighter1_21_676_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_21_676_Closed_Text.style.display='none'; Codehighlighter1_21_676_Open_Image.style.display='inline'; Codehighlighter1_21_676_Open_Text.style.display='inline';" alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" /><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">class</span><span style="color: #000000">&nbsp;Cashier&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_21_676_Closed_Text"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span></span><span id="Codehighlighter1_21_676_Open_Text"><span style="font-size: 10pt"><span style="color: #000000">{<br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">private</span><span style="color: #000000">&nbsp;DiscountStrategy&nbsp;discountStrategy&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span></span><span style="font-size: 10pt"><span style="color: #000000">&nbsp;GeneralDiscountStrategy();<br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" /><br />
<img id="Codehighlighter1_168_559_Open_Image" onclick="this.style.display='none'; Codehighlighter1_168_559_Open_Text.style.display='none'; Codehighlighter1_168_559_Closed_Image.style.display='inline'; Codehighlighter1_168_559_Closed_Text.style.display='inline';" alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" /><img style="display: none" id="Codehighlighter1_168_559_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_168_559_Closed_Text.style.display='none'; Codehighlighter1_168_559_Open_Image.style.display='inline'; Codehighlighter1_168_559_Open_Text.style.display='inline';" alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;getDiscountStrategy(CustomerLevel&nbsp;customerLevel)&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_168_559_Closed_Text"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span></span><span id="Codehighlighter1_168_559_Open_Text"><span style="font-size: 10pt"><span style="color: #000000">{<br />
<img id="Codehighlighter1_201_553_Open_Image" onclick="this.style.display='none'; Codehighlighter1_201_553_Open_Text.style.display='none'; Codehighlighter1_201_553_Closed_Image.style.display='inline'; Codehighlighter1_201_553_Closed_Text.style.display='inline';" alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" /><img style="display: none" id="Codehighlighter1_201_553_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_201_553_Closed_Text.style.display='none'; Codehighlighter1_201_553_Open_Image.style.display='inline'; Codehighlighter1_201_553_Open_Text.style.display='inline';" alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">switch</span><span style="color: #000000">&nbsp;(customerLevel)&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_201_553_Closed_Text"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span></span><span id="Codehighlighter1_201_553_Open_Text"><span style="font-size: 10pt"><span style="color: #000000">{<br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">case</span></span><span style="font-size: 10pt"><span style="color: #000000">&nbsp;GENERAL:<br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;discountStrategy&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span></span><span style="font-size: 10pt"><span style="color: #000000">&nbsp;GeneralDiscountStrategy();<br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">break</span></span><span style="font-size: 10pt"><span style="color: #000000">;<br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">case</span></span><span style="font-size: 10pt"><span style="color: #000000">&nbsp;SILVER:<br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;discountStrategy&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span></span><span style="font-size: 10pt"><span style="color: #000000">&nbsp;SilverDiscountStrategy();<br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">break</span></span><span style="font-size: 10pt"><span style="color: #000000">;<br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">case</span></span><span style="font-size: 10pt"><span style="color: #000000">&nbsp;GOLDEN:<br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;discountStrategy&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span></span><span style="font-size: 10pt"><span style="color: #000000">&nbsp;GeneralDiscountStrategy();<br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">break</span></span><span style="color: #000000"><span style="font-size: 10pt">;<br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></span><span style="color: #000000"><br />
<span style="font-size: 10pt"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></span><span style="color: #000000"><br />
<span style="font-size: 10pt"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" /><br />
<img id="Codehighlighter1_613_674_Open_Image" onclick="this.style.display='none'; Codehighlighter1_613_674_Open_Text.style.display='none'; Codehighlighter1_613_674_Closed_Image.style.display='inline'; Codehighlighter1_613_674_Closed_Text.style.display='inline';" alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" /><img style="display: none" id="Codehighlighter1_613_674_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_613_674_Closed_Text.style.display='none'; Codehighlighter1_613_674_Open_Image.style.display='inline'; Codehighlighter1_613_674_Open_Text.style.display='inline';" alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;</span></span><span style="font-size: 10pt"><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">double</span><span style="color: #000000">&nbsp;calculate(</span><span style="color: #0000ff">double</span><span style="color: #000000">&nbsp;price,&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;num)&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_613_674_Closed_Text"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span></span><span id="Codehighlighter1_613_674_Open_Text"><span style="font-size: 10pt"><span style="color: #000000">{<br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;discountStrategy.discount(price&nbsp;</span><span style="color: #000000">*</span></span><span style="color: #000000"><span style="font-size: 10pt">&nbsp;num);<br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></span><span style="color: #000000"><br />
<span style="font-size: 10pt"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" />}</span></span></span></div>
<img src ="http://www.blogjava.net/simonshen/aggbug/347744.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/simonshen/" target="_blank">simon.shen</a> 2011-04-06 22:56 <a href="http://www.blogjava.net/simonshen/archive/2011/04/06/347744.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>