﻿<?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-robbie-随笔分类-设计模式</title><link>http://www.blogjava.net/robbie/category/36352.html</link><description /><language>zh-cn</language><lastBuildDate>Sat, 29 Nov 2008 16:29:33 GMT</lastBuildDate><pubDate>Sat, 29 Nov 2008 16:29:33 GMT</pubDate><ttl>60</ttl><item><title>Template设计模式</title><link>http://www.blogjava.net/robbie/archive/2008/11/29/243475.html</link><dc:creator>The Matrix</dc:creator><author>The Matrix</author><pubDate>Sat, 29 Nov 2008 14:54:00 GMT</pubDate><guid>http://www.blogjava.net/robbie/archive/2008/11/29/243475.html</guid><wfw:comment>http://www.blogjava.net/robbie/comments/243475.html</wfw:comment><comments>http://www.blogjava.net/robbie/archive/2008/11/29/243475.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/robbie/comments/commentRss/243475.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/robbie/services/trackbacks/243475.html</trackback:ping><description><![CDATA[<p>&nbsp;&nbsp;&nbsp; Template设计模式主要适用于需要按一定的步骤执行的场合，但有的步骤在不同的场合执行的内容有不相同。如下类图中的TemplateClass中的execute()方法会按照如下的顺序进行调用：</p>
<blockquote>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;execute()&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;step1();<br />
&nbsp;&nbsp;&nbsp;&nbsp;step2();<br />
}</span></div>
</blockquote>
<p>&nbsp;&nbsp;&nbsp; 但由于step1在不同的场合执行的内容不一样，此时就将step1设为抽象方法，在TemplateConcreteClass1和TemplateConcreteClass2中分别实现，这样就形成了Template设计模式，step1()方法也称为模板方式。</p>
<p>&nbsp;&nbsp;&nbsp; 类图如下：</p>
<p>&nbsp;&nbsp;&nbsp; <a href="http://www.blogjava.net/images/blogjava_net/robbie/WindowsLiveWriter/Template_14210/TemplateClassDiagram_2.jpg"><img style="border: 0px none ;" alt="TemplateClassDiagram" src="http://www.blogjava.net/images/blogjava_net/robbie/WindowsLiveWriter/Template_14210/TemplateClassDiagram_thumb.jpg" width="391" border="0" height="240" /></a></p>
<img src ="http://www.blogjava.net/robbie/aggbug/243475.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/robbie/" target="_blank">The Matrix</a> 2008-11-29 22:54 <a href="http://www.blogjava.net/robbie/archive/2008/11/29/243475.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>