﻿<?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-Sam's Blog</title><link>http://www.blogjava.net/samwang/</link><description>世界因你而美丽</description><language>zh-cn</language><lastBuildDate>Thu, 14 May 2026 18:51:34 GMT</lastBuildDate><pubDate>Thu, 14 May 2026 18:51:34 GMT</pubDate><ttl>60</ttl><item><title>Strategy（策略）模式</title><link>http://www.blogjava.net/samwang/articles/177207.html</link><dc:creator>Sam Wang</dc:creator><author>Sam Wang</author><pubDate>Wed, 23 Jan 2008 02:52:00 GMT</pubDate><guid>http://www.blogjava.net/samwang/articles/177207.html</guid><wfw:comment>http://www.blogjava.net/samwang/comments/177207.html</wfw:comment><comments>http://www.blogjava.net/samwang/articles/177207.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.blogjava.net/samwang/comments/commentRss/177207.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/samwang/services/trackbacks/177207.html</trackback:ping><description><![CDATA[Strategy--定义一系列的算法，把它们一个个封装起来，并且使它们可相互替换。本模式使得算法可独立于使用它的客户而变化。<br />
<img src="http://www.blogjava.net/images/blogjava_net/samwang/strategy.jpg" alt="" border="0" /><br />
<strong><em><u><span style="font-size: 18pt;">参与者<br />
<br />
</span></u></em></strong><strong>Strategy</strong><br />
<ul>
    <li>&nbsp;-- 定义所有支持的算法的公共接口。Context使用这个接口来调用某ConcreteStrategy定义的算法。</li>
</ul>
<strong>ConcreteStrategy（具体策略)</strong><br />
<ul>
    <li>&nbsp;-- 以Strategy接口实现英雄模范具体算法。</li>
</ul>
<strong>Context（上下文）</strong><br />
<ul>
    <li>--用一个ConcreteStrategy对象来配置。</li>
</ul>
<ul>
    <li>--维护一个对Strategy对象的引用。</li>
</ul>
<ul>
    <li>--可定义一个接口来让Strategy访问它的数据。</li>
</ul>
<br />
<u><em><strong><span style="font-size: 18pt;">适用性</span></strong></em></u><br />
<ol>
    <li>当存在以下情况时使用Strategy模式</li>
    <li>许多相关的类仅仅是行为有异。&#8220;策略&#8221;提供了一种用多个行为中的一个行为来配置一个类的方法。</li>
    <li>需要使用一个算法的不同变体。</li>
    <li>算法使用了客户不应该知道的数据。可使用策略模式以避免暴露复杂的、与算法相关的数据结构。</li>
</ol>
<br />
<br />
<br />
<img src ="http://www.blogjava.net/samwang/aggbug/177207.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/samwang/" target="_blank">Sam Wang</a> 2008-01-23 10:52 <a href="http://www.blogjava.net/samwang/articles/177207.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Composite（组合）模式</title><link>http://www.blogjava.net/samwang/articles/177107.html</link><dc:creator>Sam Wang</dc:creator><author>Sam Wang</author><pubDate>Tue, 22 Jan 2008 10:04:00 GMT</pubDate><guid>http://www.blogjava.net/samwang/articles/177107.html</guid><wfw:comment>http://www.blogjava.net/samwang/comments/177107.html</wfw:comment><comments>http://www.blogjava.net/samwang/articles/177107.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/samwang/comments/commentRss/177107.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/samwang/services/trackbacks/177107.html</trackback:ping><description><![CDATA[Composite模式描述了如何使用递归组合，使得用户不必对这些类进行区别。<br />
<img src="http://www.blogjava.net/images/blogjava_net/samwang/composite.jpg" alt="" height="797" width="658" /><br />
Composite的关键是一个抽象类，它既可以代表图元，又可以你表图元的容器。<br />
<br />
<strong><em><u><span style="font-size: 18pt;"><span style="font-size: 14pt;">
参于者<br />
<br />
</span></span></u></em></strong>
<strong>
Component</strong><br />
<ul>
    <li>
    --为组合中的对象声明接口。</li>
</ul>
<ul>
    <li>
    --在适当的情况下，实现所有类共有接口的缺省行为。</li>
</ul>
<ul>
    <li>
    --声明一个接口用于访问和管理Composite的子组件。</li>
</ul>
<ul>
    <li>
    --（可选）在递归结构中定义一个接口，用于访问一个父部件，并在合适的情况下实现它。</li>
</ul>
<strong>
Leaf</strong><br />
<ul>
    <li>
    --在组合中表示叶节点对象，叶节点没有子节点。</li>
    <li>
    --在组合中定义图元对象的行为。</li>
</ul>
<strong>
Composite</strong><br />
<ul>
    <li>
    --定义有子部件的那些部件的行为。</li>
    <li>
    --存储子部件</li>
</ul>
<strong>
Client</strong><br />
<ul>
    <li>
    --通过Component接口操纵组合部件的对象。</li>
</ul>
<span style="font-size: 18pt;"><strong><em><u><br />
适用性<br />
</u></em></strong></span><br />
你想表示对象的部份-整体层次结构。<br />
你希望用户忽略组合对象与单个对象的不同，用户将统一地使用组合结构中的所有对象。<br />
<br />
<img src ="http://www.blogjava.net/samwang/aggbug/177107.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/samwang/" target="_blank">Sam Wang</a> 2008-01-22 18:04 <a href="http://www.blogjava.net/samwang/articles/177107.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>UML例图对应中文名称</title><link>http://www.blogjava.net/samwang/articles/171863.html</link><dc:creator>Sam Wang</dc:creator><author>Sam Wang</author><pubDate>Mon, 31 Dec 2007 08:34:00 GMT</pubDate><guid>http://www.blogjava.net/samwang/articles/171863.html</guid><wfw:comment>http://www.blogjava.net/samwang/comments/171863.html</wfw:comment><comments>http://www.blogjava.net/samwang/articles/171863.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/samwang/comments/commentRss/171863.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/samwang/services/trackbacks/171863.html</trackback:ping><description><![CDATA[<ul>
    <li><strong>User Case Diagram -- 用例图</strong></li>
</ul>
<blockquote><blockquote><strong><img alt="" src="http://www.netbeans.org/images/articles/uml-why-model/UseCase.gif" height="151" width="200" /></strong><br />
</blockquote><strong></strong></blockquote><strong><br />
</strong>
<ul>
    <li><strong>Component Diagram -- 组件图</strong></li>
</ul>
<blockquote><blockquote><strong><img alt="" src="http://www.netbeans.org/images/articles/uml-why-model/Component.png" height="127" width="200" /></strong><br />
</blockquote><strong></strong></blockquote><strong><br />
</strong>
<ul>
    <li><strong>Class Diagram -- 类图</strong></li>
</ul>
<blockquote><blockquote><strong><img alt="" src="http://www.netbeans.org/images/articles/uml-why-model/Class.gif" height="222" width="200" /></strong><br />
</blockquote><strong></strong></blockquote><strong><br />
</strong>
<ul>
    <li><strong>Activity Diagram -- 行为图</strong></li>
</ul>
<blockquote><blockquote><strong><img alt="" src="http://www.netbeans.org/images/articles/uml-why-model/Activity.png" height="170" width="200" /></strong><br />
</blockquote><strong></strong></blockquote><strong><br />
</strong>
<ul>
    <li><strong>Collaboration Diagram -- 协作图</strong></li>
</ul>
<blockquote><blockquote><strong><img alt="" src="http://www.netbeans.org/images/articles/uml-why-model/Collab.gif" height="151" width="200" /></strong><br />
</blockquote><strong></strong></blockquote><strong><br />
</strong>
<ul>
    <li><strong>Deployment Diagram -- 开发图</strong></li>
</ul>
<blockquote><blockquote><strong><img alt="" src="http://www.netbeans.org/images/articles/uml-why-model/Deployment_Diagram.png" height="235" width="200" /></strong><br />
</blockquote><strong></strong></blockquote><strong><br />
</strong>
<ul>
    <li><strong>Sequence Diagram -- 顺序图</strong></li>
</ul>
<blockquote><blockquote><strong><img alt="" src="http://www.netbeans.org/images/articles/uml-why-model/Sequence.gif" height="157" width="200" /></strong><br />
</blockquote><strong></strong></blockquote><strong><br />
</strong>
<ul>
    <li><strong>State Diagram -- 状态图</strong></li>
</ul>
<strong></strong><blockquote><blockquote><strong><img alt="" src="http://www.netbeans.org/images/articles/uml-why-model/State.png" height="107" width="200" /></strong><br />
</blockquote><strong></strong></blockquote><strong><br />
<br />
</strong>
<img src ="http://www.blogjava.net/samwang/aggbug/171863.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/samwang/" target="_blank">Sam Wang</a> 2007-12-31 16:34 <a href="http://www.blogjava.net/samwang/articles/171863.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>新的起点，新的开始！！</title><link>http://www.blogjava.net/samwang/archive/2007/12/31/171810.html</link><dc:creator>Sam Wang</dc:creator><author>Sam Wang</author><pubDate>Mon, 31 Dec 2007 02:16:00 GMT</pubDate><guid>http://www.blogjava.net/samwang/archive/2007/12/31/171810.html</guid><wfw:comment>http://www.blogjava.net/samwang/comments/171810.html</wfw:comment><comments>http://www.blogjava.net/samwang/archive/2007/12/31/171810.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/samwang/comments/commentRss/171810.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/samwang/services/trackbacks/171810.html</trackback:ping><description><![CDATA[2008将要开始了，在将要到来的新年里，要好好写点东西出来，一为自己积累些心得体会，二为贡献下自己的心得体会，哈哈！！<br />
同时还是希望能在这个java大家庭里跟大伙一起交流交流呀！！！<br />
<br />
<img src ="http://www.blogjava.net/samwang/aggbug/171810.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/samwang/" target="_blank">Sam Wang</a> 2007-12-31 10:16 <a href="http://www.blogjava.net/samwang/archive/2007/12/31/171810.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>