﻿<?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/balajinima/category/26956.html</link><description /><language>zh-cn</language><lastBuildDate>Fri, 29 Feb 2008 08:20:09 GMT</lastBuildDate><pubDate>Fri, 29 Feb 2008 08:20:09 GMT</pubDate><ttl>60</ttl><item><title>SSH中 struts hibernate spring 各起什么作用?</title><link>http://www.blogjava.net/balajinima/articles/182937.html</link><dc:creator>李云泽</dc:creator><author>李云泽</author><pubDate>Fri, 29 Feb 2008 07:19:00 GMT</pubDate><guid>http://www.blogjava.net/balajinima/articles/182937.html</guid><wfw:comment>http://www.blogjava.net/balajinima/comments/182937.html</wfw:comment><comments>http://www.blogjava.net/balajinima/articles/182937.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/balajinima/comments/commentRss/182937.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/balajinima/services/trackbacks/182937.html</trackback:ping><description><![CDATA[
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span style="FONT-SIZE: 14pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">
						<font size="4">简单的说：</font>
				</span>
				<span lang="EN-US" style="FONT-SIZE: 14pt">
						<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /?>
						<o:p>
						</o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 42pt; mso-char-indent-count: 3.0">
				<span lang="EN-US" style="FONT-SIZE: 14pt">struts </span>
				<span style="FONT-SIZE: 14pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">控制用的</span>
				<span style="FONT-SIZE: 14pt">
						<span lang="EN-US">
								<o:p>
								</o:p>
						</span>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 42pt; mso-char-indent-count: 3.0">
				<span lang="EN-US" style="FONT-SIZE: 14pt">hibernate </span>
				<span style="FONT-SIZE: 14pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">操作数据库的</span>
				<span lang="EN-US" style="FONT-SIZE: 14pt">
						<o:p>
						</o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 42pt; mso-char-indent-count: 3.0">
				<span lang="EN-US" style="FONT-SIZE: 14pt">spring </span>
				<span style="FONT-SIZE: 14pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">用解耦的</span>
				<span lang="EN-US" style="FONT-SIZE: 14pt">
						<br />
				</span>
				<span style="FONT-SIZE: 14pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">详细的说：</span>
				<span lang="EN-US" style="FONT-SIZE: 14pt">
						<o:p>
						</o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 42pt; mso-char-indent-count: 3.0">
				<span lang="EN-US" style="FONT-SIZE: 14pt">STRUTS </span>
				<span style="FONT-SIZE: 14pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">在</span>
				<span lang="EN-US" style="FONT-SIZE: 14pt">SSH</span>
				<span style="FONT-SIZE: 14pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">框架中起控制的作用</span>
				<span lang="EN-US" style="FONT-SIZE: 14pt">,</span>
				<span style="FONT-SIZE: 14pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">其核心是</span>
				<span lang="EN-US" style="FONT-SIZE: 14pt">Controller,</span>
				<span style="FONT-SIZE: 14pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">即</span>
				<span lang="EN-US" style="FONT-SIZE: 14pt">ActionServlet,</span>
				<span style="FONT-SIZE: 14pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">而</span>
				<span lang="EN-US" style="FONT-SIZE: 14pt">ActionServlet</span>
				<span style="FONT-SIZE: 14pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的核心就是</span>
				<span lang="EN-US" style="FONT-SIZE: 14pt">Struts-confi g.xml.</span>
				<span style="FONT-SIZE: 14pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">主要控制逻辑关系的处理</span>
				<span lang="EN-US" style="FONT-SIZE: 14pt">. <o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 42pt; mso-char-indent-count: 3.0">
				<span lang="EN-US" style="FONT-SIZE: 14pt">hibernate</span>
				<span style="FONT-SIZE: 14pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">是数据持久化层</span>
				<span lang="EN-US" style="FONT-SIZE: 14pt">,</span>
				<span style="FONT-SIZE: 14pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">是一种新的对象、关系的映射工具</span>
				<span lang="EN-US" style="FONT-SIZE: 14pt">,</span>
				<span style="FONT-SIZE: 14pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">提供了从</span>
				<span lang="EN-US" style="FONT-SIZE: 14pt">Java</span>
				<span style="FONT-SIZE: 14pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">类到数据表的映射，也提供了数据查询和恢复等机制</span>
				<span lang="EN-US" style="FONT-SIZE: 14pt">,</span>
				<span style="FONT-SIZE: 14pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">大大减少数据访问的复杂度。把对数据库的直接操作</span>
				<span lang="EN-US" style="FONT-SIZE: 14pt">,</span>
				<span style="FONT-SIZE: 14pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">转换为对持久对象的操作</span>
				<span lang="EN-US" style="FONT-SIZE: 14pt">.<o:p></o:p></span>
		</p>
		<span lang="EN-US" style="FONT-SIZE: 14pt; FONT-FAMILY: 'Times New Roman'; mso-fareast-font-family: 宋体; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">SPRING </span>
		<span style="FONT-SIZE: 14pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-bidi-font-family: 'Times New Roman'">是一个轻量级的控制反转</span>
		<span lang="EN-US" style="FONT-SIZE: 14pt; FONT-FAMILY: 'Times New Roman'; mso-fareast-font-family: 宋体; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">(IoC)</span>
		<span style="FONT-SIZE: 14pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-bidi-font-family: 'Times New Roman'">和面向切面</span>
		<span lang="EN-US" style="FONT-SIZE: 14pt; FONT-FAMILY: 'Times New Roman'; mso-fareast-font-family: 宋体; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">(AOP)</span>
		<span style="FONT-SIZE: 14pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-bidi-font-family: 'Times New Roman'">的容器框架</span>
		<span lang="EN-US" style="FONT-SIZE: 14pt; FONT-FAMILY: 'Times New Roman'; mso-fareast-font-family: 宋体; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">,</span>
		<span style="FONT-SIZE: 14pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-bidi-font-family: 'Times New Roman'">面向接口的编程</span>
		<span lang="EN-US" style="FONT-SIZE: 14pt; FONT-FAMILY: 'Times New Roman'; mso-fareast-font-family: 宋体; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">,</span>
		<span style="FONT-SIZE: 14pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-bidi-font-family: 'Times New Roman'">由容器控制程序之间的（依赖）关系，而非传统实现中，由程序代码直接操控。这也就是所谓</span>
		<span lang="EN-US" style="FONT-SIZE: 14pt; FONT-FAMILY: 'Times New Roman'; mso-fareast-font-family: 宋体; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">“</span>
		<span style="FONT-SIZE: 14pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-bidi-font-family: 'Times New Roman'">控制反转</span>
		<span lang="EN-US" style="FONT-SIZE: 14pt; FONT-FAMILY: 'Times New Roman'; mso-fareast-font-family: 宋体; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">”</span>
		<span style="FONT-SIZE: 14pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-bidi-font-family: 'Times New Roman'">的概念所在：（依赖）控制权由应用代码中转到了外部容器，控制权的转移，是所谓反转。依赖注入，即组件之间的依赖关系由容器在运行期决定，形象的来说，即由容器动态的将某种依赖关系注入到组件之中</span>
		<span lang="EN-US" style="FONT-SIZE: 14pt; FONT-FAMILY: 'Times New Roman'; mso-fareast-font-family: 宋体; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">
				<br />
		</span>
		<span style="FONT-SIZE: 14pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-bidi-font-family: 'Times New Roman'">起到的主要作用是解耦</span>
		<br />
		<br />
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="mso-bidi-font-size: 10.5pt">Struts</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 10.5pt">、</span>
				<span lang="EN-US" style="mso-bidi-font-size: 10.5pt">spring</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 10.5pt">、</span>
				<span lang="EN-US" style="mso-bidi-font-size: 10.5pt">Hibernate</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 10.5pt">在各层的作用</span>
				<span lang="EN-US" style="mso-bidi-font-size: 10.5pt">
						<o:p>
						</o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="mso-bidi-font-size: 10.5pt">1</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 10.5pt">）</span>
				<span lang="EN-US" style="mso-bidi-font-size: 10.5pt">struts </span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 10.5pt">负责</span>
				<span lang="EN-US" style="mso-bidi-font-size: 10.5pt"> web</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 10.5pt">层</span>
				<span lang="EN-US" style="mso-bidi-font-size: 10.5pt">. <o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="mso-bidi-font-size: 10.5pt">ActionFormBean </span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 10.5pt">接收网页中表单提交的数据，然后通过</span>
				<span lang="EN-US" style="mso-bidi-font-size: 10.5pt">Action </span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 10.5pt">进行处理，再</span>
				<span lang="EN-US" style="mso-bidi-font-size: 10.5pt">Forward</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 10.5pt">到对应的网页。</span>
				<span lang="EN-US" style="mso-bidi-font-size: 10.5pt">
						<o:p>
						</o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 10.5pt">在</span>
				<span lang="EN-US" style="mso-bidi-font-size: 10.5pt">struts-config.xml</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 10.5pt">中定义</span>
				<span lang="EN-US" style="mso-bidi-font-size: 10.5pt">&lt;action-mapping&gt;, ActionServlet</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 10.5pt">会加载。</span>
				<span lang="EN-US" style="mso-bidi-font-size: 10.5pt">
						<o:p>
						</o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="mso-bidi-font-size: 10.5pt">2</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 10.5pt">）</span>
				<span lang="EN-US" style="mso-bidi-font-size: 10.5pt">spring </span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 10.5pt">负责业务层管理，即</span>
				<span lang="EN-US" style="mso-bidi-font-size: 10.5pt">Service</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 10.5pt">（或</span>
				<span lang="EN-US" style="mso-bidi-font-size: 10.5pt">Manager).<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="mso-bidi-font-size: 10.5pt">1</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 10.5pt">．</span>
				<span lang="EN-US" style="mso-bidi-font-size: 10.5pt"> service</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 10.5pt">为</span>
				<span lang="EN-US" style="mso-bidi-font-size: 10.5pt">action</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 10.5pt">提供统计的调用接口，封装持久层的</span>
				<span lang="EN-US" style="mso-bidi-font-size: 10.5pt">DAO.<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="mso-bidi-font-size: 10.5pt">2</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 10.5pt">．可以写一些自己的业务方法。</span>
				<span lang="EN-US" style="mso-bidi-font-size: 10.5pt">
						<o:p>
						</o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="mso-bidi-font-size: 10.5pt">3</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 10.5pt">．统一的</span>
				<span lang="EN-US" style="mso-bidi-font-size: 10.5pt">javabean</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 10.5pt">管理方法</span>
				<span lang="EN-US" style="mso-bidi-font-size: 10.5pt">
						<o:p>
						</o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="mso-bidi-font-size: 10.5pt">4</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 10.5pt">．声明式事务管理</span>
				<span lang="EN-US" style="mso-bidi-font-size: 10.5pt">
						<o:p>
						</o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="mso-bidi-font-size: 10.5pt">5.</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 10.5pt">集成</span>
				<span lang="EN-US" style="mso-bidi-font-size: 10.5pt">Hiberante<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="mso-bidi-font-size: 10.5pt">3</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 10.5pt">）</span>
				<span lang="EN-US" style="mso-bidi-font-size: 10.5pt">Hiberante</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 10.5pt">，负责持久化层，完成数据库的</span>
				<span lang="EN-US" style="mso-bidi-font-size: 10.5pt">crud</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 10.5pt">操作</span>
				<span lang="EN-US" style="mso-bidi-font-size: 10.5pt">
						<o:p>
						</o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="mso-bidi-font-size: 10.5pt">hibernate </span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 10.5pt">为持久层，提供</span>
				<span lang="EN-US" style="mso-bidi-font-size: 10.5pt"> OR/Mapping</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 10.5pt">。</span>
				<span lang="EN-US" style="mso-bidi-font-size: 10.5pt">
						<o:p>
						</o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 10.5pt">它有一组</span>
				<span lang="EN-US" style="mso-bidi-font-size: 10.5pt"> .hbm.xml</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 10.5pt">文件和</span>
				<span lang="EN-US" style="mso-bidi-font-size: 10.5pt"> POJO,</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 10.5pt">是跟数据库中的表相对应的。然后定义</span>
				<span lang="EN-US" style="mso-bidi-font-size: 10.5pt">DAO</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 10.5pt">，这些是跟数据库打交道的类，它们会使用</span>
				<span lang="EN-US" style="mso-bidi-font-size: 10.5pt">PO</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 10.5pt">。</span>
				<span lang="EN-US" style="mso-bidi-font-size: 10.5pt">
						<o:p>
						</o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 10.5pt">在</span>
				<span lang="EN-US" style="mso-bidi-font-size: 10.5pt">struts+spring+hibernate</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 10.5pt">的系统中，</span>
				<span lang="EN-US" style="mso-bidi-font-size: 10.5pt">
						<o:p>
						</o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 10.5pt">对象的调用流程是：</span>
				<span lang="EN-US" style="mso-bidi-font-size: 10.5pt">jsp-&gt; Action</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 10.5pt">－</span>
				<span lang="EN-US" style="mso-bidi-font-size: 10.5pt">&gt; Service -&gt;DAO -&gt;Hibernate</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 10.5pt">。</span>
				<span lang="EN-US" style="mso-bidi-font-size: 10.5pt">
						<o:p>
						</o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 10.5pt">数据的流向是</span>
				<span lang="EN-US" style="mso-bidi-font-size: 10.5pt"> ActionFormBean</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 10.5pt">接受用户的数据，</span>
				<span lang="EN-US" style="mso-bidi-font-size: 10.5pt">Action </span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 10.5pt">将数据从</span>
				<span lang="EN-US" style="mso-bidi-font-size: 10.5pt"> ActionFromBean </span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 10.5pt">中取出，封装成</span>
				<span lang="EN-US" style="mso-bidi-font-size: 10.5pt">VO</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 10.5pt">或</span>
				<span lang="EN-US" style="mso-bidi-font-size: 10.5pt">PO, <o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 10.5pt">再调用业务层的</span>
				<span lang="EN-US" style="mso-bidi-font-size: 10.5pt">Bean</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 10.5pt">类，完成各种业务处理后再</span>
				<span lang="EN-US" style="mso-bidi-font-size: 10.5pt">forward</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 10.5pt">。而业务层</span>
				<span lang="EN-US" style="mso-bidi-font-size: 10.5pt">Bean</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 10.5pt">收到这个</span>
				<span lang="EN-US" style="mso-bidi-font-size: 10.5pt">PO</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 10.5pt">对象之后，会调用</span>
				<span lang="EN-US" style="mso-bidi-font-size: 10.5pt">DAO</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 10.5pt">接口方法，进行持久化操作。</span>
				<span lang="EN-US" style="mso-bidi-font-size: 10.5pt">
						<o:p>
						</o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="mso-bidi-font-size: 10.5pt">
						<o:p> </o:p>
				</span>
		</p>
<img src ="http://www.blogjava.net/balajinima/aggbug/182937.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/balajinima/" target="_blank">李云泽</a> 2008-02-29 15:19 <a href="http://www.blogjava.net/balajinima/articles/182937.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>javadoc文档注释</title><link>http://www.blogjava.net/balajinima/articles/173665.html</link><dc:creator>李云泽</dc:creator><author>李云泽</author><pubDate>Tue, 08 Jan 2008 07:49:00 GMT</pubDate><guid>http://www.blogjava.net/balajinima/articles/173665.html</guid><wfw:comment>http://www.blogjava.net/balajinima/comments/173665.html</wfw:comment><comments>http://www.blogjava.net/balajinima/articles/173665.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/balajinima/comments/commentRss/173665.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/balajinima/services/trackbacks/173665.html</trackback:ping><description><![CDATA[对于Java语言，最体贴的一项设计就是它并没有打算让人们为了写程序而写程序——人们也需要考虑程序的文档化问题。对于程序的文档化，最大的问题莫过于对文档的维护。若文档与代码分离，那么每次改变代码后都要改变文档，这无疑会变成相当麻烦的一件事情。解决的方法看起来似乎很简单：将代码同文档“链接”起来。为达到这个目的，最简单的方法是将所有内容都置于同一个文件。然而，为使一切都整齐划一，还必须使用一种特殊的注释语法，以便标记出特殊的文档；另外还需要一个工具，用于提取这些注释，并按有价值的形式将其展现出来。这些都是Java必须做到的。 <br />用于提取注释的工具叫作javadoc。它采用了部分来自Java编译器的技术，查找我们置入程序的特殊注释标记。它不仅提取由这些标记指示的信息，也将毗邻注释的类名或方法名提取出来。这样一来，我们就可用最轻的工作量，生成十分专业的程序文档。 <br />javadoc输出的是一个HTML文件，可用自己的Web浏览器查看。该工具允许我们创建和管理单个源文件，并生动生成有用的文档。由于有了jvadoc，所以我们能够用标准的方法创建文档。而且由于它非常方便，所以我们能轻松获得所有Java库的文档。 
<p>2 具体语法 <br />所有javadoc命令都只能出现于“/**”注释中。但和平常一样，注释结束于一个“*/”。主要通过两种方式来使用javadoc：嵌入的HTML，或使用“文档标记”。其中，“文档标记”（Doc tags）是一些以“@”开头的命令，置于注释行的起始处（但前导的“*”会被忽略）。 <br />有三种类型的注释文档，它们对应于位于注释后面的元素：类、变量或者方法。也就是说，一个类注释正好位于一个类定义之前；变量注释正好位于变量定义之前；而一个方法定义正好位于一个方法定义的前面。如下面这个简单的例子所示： </p><p>/** 一个类注释 */ <br />public class docTest { <br />/** 一个变量注释 */ <br />public int i; <br />/** 一个方法注释 */ <br />public void f() {} <br />} </p><p>注意javadoc只能为public（公共）和protected（受保护）成员处理注释文档。“private”（私有）和“友好”（详见5章）成员的注释会被忽略，我们看不到任何输出（也可以用-private标记包括private成员）。这样做是有道理的，因为只有public和protected成员才可在文件之外使用，这是客户程序员的希望。然而，所有类注释都会包含到输出结果里。 <br />上述代码的输出是一个HTML文件，它与其他Java文档具有相同的标准格式。因此，用户会非常熟悉这种格式，可在您设计的类中方便地“漫游”。设计程序时，请务必考虑输入上述代码，用javadoc处理一下，观看最终HTML文件的效果如何。 </p><p>3 嵌入HTML <br />javadoc将HTML命令传递给最终生成的HTML文档。这便使我们能够充分利用HTML的巨大威力。当然，我们的最终动机是格式化代码，不是为了哗众取宠。下面列出一个例子： </p><p>/** <br />* <br />* System.out.println(new Date());<br />* </p><p>*/ </p><p>亦可象在其他Web文档里那样运用HTML，对普通文本进行格式化，使其更具条理、更加美观： <br />/** <br />* 您甚至可以插入一个列表： <br />* </p><p>* <br />项目一 <br />* <br />项目二 <br />* <br />项目三 <br />* </p><p>*/ </p><p>注意在文档注释中，位于一行最开头的星号会被javadoc丢弃。同时丢弃的还有前导空格。javadoc会对所有内容进行格式化，使其与标准的文档外观相符。不要将 <br />或 </p><p>这样的标题当作嵌入HTML使用，因为javadoc会插入自己的标题，我们给出的标题会与之冲撞。 <br />所有类型的注释文档——类、变量和方法——都支持嵌入HTML。 </p><p>4 @see：引用其他类 <br />所有三种类型的注释文档都可包含@see标记，它允许我们引用其他类里的文档。对于这个标记，javadoc会生成相应的HTML，将其直接链接到其他文档。格式如下： </p><p>@see 类名 <br />@see 完整类名 <br />@see 完整类名<br />每一格式都会在生成的文档里自动加入一个超链接的“See Also”（参见）条目。注意javadoc不会检查我们指定的超链接，不会验证它们是否有效。 </p><p>5 类文档标记 <br />随同嵌入HTML和@see引用，类文档还可以包括用于版本信息以及作者姓名的标记。类文档亦可用于“接口”目的（本书后面会详细解释）。 </p><p>1. @version <br />格式如下： <br />@version 版本信息 <br />其中，“版本信息”代表任何适合作为版本说明的资料。若在javadoc命令行使用了“-version”标记，就会从生成的HTML文档里提取出版本信息。 </p><p>2. @author <br />格式如下： <br />@author 作者信息 <br />其中，“作者信息”包括您的姓名、电子函件地址或者其他任何适宜的资料。若在javadoc命令行使用了“-author”标记，就会专门从生成的HTML文档里提取出作者信息。 <br />可为一系列作者使用多个这样的标记，但它们必须连续放置。全部作者信息会一起存入最终HTML代码的单独一个段落里。 </p><p>6 变量文档标记 <br />变量文档只能包括嵌入的HTML以及@see引用。 </p><p>7 方法文档标记 <br />除嵌入HTML和@see引用之外，方法还允许使用针对参数、返回值以及违例的文档标记。 </p><p>1. @param <br />格式如下： <br />@param 参数名 说明 <br />其中，“参数名”是指参数列表内的标识符，而“说明”代表一些可延续到后续行内的说明文字。一旦遇到一个新文档标记，就认为前一个说明结束。可使用任意数量的说明，每个参数一个。 </p><p>2. @return <br />格式如下： <br />@return 说明 <br />其中，“说明”是指返回值的含义。它可延续到后面的行内。 </p><p>3. @exception <br />有关“违例”（Exception）的详细情况，我们会在第9章讲述。简言之，它们是一些特殊的对象，若某个方法失败，就可将它们“扔出”对象。调用一个方法时，尽管只有一个违例对象出现，但一些特殊的方法也许能产生任意数量的、不同类型的违例。所有这些违例都需要说明。所以，违例标记的格式如下： <br />@exception 完整类名 说明 <br />其中，“完整类名”明确指定了一个违例类的名字，它是在其他某个地方定义好的。而“说明”（同样可以延续到下面的行）告诉我们为什么这种特殊类型的违例会在方法调用中出现。 </p><p>4. @deprecated <br />这是Java 1.1的新特性。该标记用于指出一些旧功能已由改进过的新功能取代。该标记的作用是建议用户不必再使用一种特定的功能，因为未来改版时可能摒弃这一功能。若将一个方法标记为@deprecated，则使用该方法时会收到编译器的警告。</p><img src ="http://www.blogjava.net/balajinima/aggbug/173665.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/balajinima/" target="_blank">李云泽</a> 2008-01-08 15:49 <a href="http://www.blogjava.net/balajinima/articles/173665.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>如何从开发人员走向架构师 </title><link>http://www.blogjava.net/balajinima/articles/146914.html</link><dc:creator>李云泽</dc:creator><author>李云泽</author><pubDate>Thu, 20 Sep 2007 12:23:00 GMT</pubDate><guid>http://www.blogjava.net/balajinima/articles/146914.html</guid><wfw:comment>http://www.blogjava.net/balajinima/comments/146914.html</wfw:comment><comments>http://www.blogjava.net/balajinima/articles/146914.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/balajinima/comments/commentRss/146914.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/balajinima/services/trackbacks/146914.html</trackback:ping><description><![CDATA[很多架构师都是从好的开发人员逐步过渡而来的，但并非每个好的开发人员都希望成为架构师，而且他们并不是都适合做架构师。无论您是打算进行职业转型的开发人员，还是寻找能承担体系结构设计责任的合适人选的经理，都务必对此转型过程有个清楚的了解。本文将讨论从实现专家到架构师的过渡过程。 
<p> </p><p>　　在寻找优秀的指挥的时候，您首先要找的是一名优秀的音乐演奏家。但并非每个音乐演奏家都能成为优秀的指挥。架构师的专业发展方面也与此类似。越来越多的 IT 组织开始认识到良好软件体系结构的重要性，架构师职业正迅速发展为 IT 内一个独立的门类。由于要从相当小的候选范围内招募架构师，因此这就给管理带来了一些新挑战。即使人力资源部门找到了候选者，针对经验进行的筛选也比其他门类更为严格。跨越这些障碍的最快方式是要认识到，大部分好的架构师同时也是好的开发人员，因此寻找架构师人才时可能首先应该从普通开发人员中找起。招聘人员在对候选者(内部或外部)进行详细审查时，应该考虑这个观点。不过，对此资源进行挑选可能比较麻烦，因为只有极少的优秀开发人员具有成为架构师的特征或愿望。</p><p>　　本文列出了开发人员成为架构师要进行的工作。我将从可能考虑进行此转型的开发人员和评估进行此转型的开发人员的经理这两个方面来探讨这一问题。我还将提供一系列在做出这些决策时要考虑的因素。</p><p>　　<strong>个人特征</strong></p><p>　　软件开发团队和管理层之间的联系始终是 IT 中的一个关键所在。二者都倾向于以完全不同的方式考虑给定的问题。大部分相关<strong mnt="" sale0703="" www="">技术</strong>都是讨论<strong www="" techguide="" itsolutions="" technet="" china="" msf="">项目经理</strong>应如何跟踪和解释开发人员的进度和问题。但沟通不足的情况仍然非常普遍，而且这是项目失败的首要原因。好的架构师是解决这个问题的最有效办法。架构师的主要责任是提供开发人员和项目经理之间的共用沟通媒体。他们负责让业务规则及需求与工程实践及限制相适应，以确保成功。以下是成功架构师的一些主要特征。</p><p>　　<strong>愿意并有能力进行沟通：</strong>在开发人员中发现架构师的最有价值标准是有效的沟通。您需要技术娴熟、经验丰富的开发人员，这样的人员需要有就项目中的业务相关问题进行沟通的经历。架构师经常必须对理解方面的差距进行预计，然后才能有所贡献。他们必须愿意克服困难来确保技术和业务观点的融合。他们并不必对意见交换工作进行计划和协调;这仍然主要是项目经理的工作。他们的任务是确定表述系统<strong mnt="" sale0703="" www="">设计</strong>时的最佳工具和构件，以促进有效的意见交换。他们必须能够判断当前方法显得不足而需要采用新方法的情况。写作技能也非常重要，还需要具有制作草图的技能或使用制图软件的能力。 </p><p>　　<strong>具有处理谈判细节方面的经验：</strong>架构师经常需要负责讨论系统开发的技术折衷方案。优先级的冲突可能会带来实践限制、风险规避或可能导致在各个不同业务组之间需求不同。优秀的架构师能够有效地评估技术可能性，并能在不损失项目的主要价值的前提下制订开发计划来处理各种利害关系和限制。这与前面讨论的沟通技能紧密相关，但同时也要体现架构师的技术能力。好的架构师候选者应该是经常帮助对有争议的讨论进行引导的人，能够使讨论得出新的想法，而不会使其在一个位置停滞不前。 </p><p>　　<strong>自觉主动;积极解决设计问题：</strong>架构师的日常工作目标经常并不明确。很多开发人员直接参考功能规范来列出任务清单。架构师通常则是向这些开发人员提供所需结构的人员，以便尽可能提高工作效率。好的候选者不仅进行沟通方面的工作，而且也会预计各种设计问题并加以解决——通常在没有任何具体指示的情况下自觉进行。无论所分配的职责如何，积极参与项目的开发人员都有机会从一起工作的人员中脱颖而出。 </p><p>　　<strong>抽象思维和分析：</strong>架构师必须能够理解表述模糊的概念并将其变成相关各方能够理解的项目构件。他们必须能够理解抽象概念，并以具体的语言对其进行沟通。开发人员中好的候选者经常要求或自己主动解释开发生命周期中容易混淆的问题。他们能迅速评估各种想法并将其纳入后续工作的操作建议中。</p><p>　　开发人员经常具有很强的数学能力，而好的架构师则倾向于表现出更强的口头表达能力。管理人员经常说开发人员具有“工程意识”，而这是一个用于评估架构师的非常有意义的方面。架构师应该具有很强的解决技术问题的能力，但还必须能够准确获知更为全面的人员如何与技术交互的信息。这要求具有某种形式的抽象思维(而不再是代码的细节)，这种思维能力可能较难形成。</p><p>　　有些人认为，某种级别的正式教育是成为优秀开发人员的必备条件之一，我并不同意这种精英论。我遇到了很多高中就辍学的优秀开发人员。不过，对于体系结构设计工作，我的个人经验以及我对所需能力的认识都让我相信，好的架构师通常至少获得了一个有挑战性的学士学位。</p><p>　　<strong>跟踪生命周期</strong></p><p>　　好的架构师通常有在具备定义良好的软件开发生命周期(Software Development Life Cycle，SDLC)的组织工作的经验。架构师必须理解在其所属专业内最重要的操作过程。这并不意味着需要有其他前提，例如，并不需要高能力成熟度模型(Capability Maturity Model，CMM)级别的工作经验。好的架构师可能来自使用 SDLC 的多个小型迭代的极限编程(Extreme Programming，XP)方法的组织。务必注意各种传统软件开发操作，如 Michael A. Jackson 的方法：Jackson 结构编程(Jackson Structured Programming，JSP)和 Jackson 系统开发(Jackson System Development，JSD)。Jackson 的研究对架构师职业发展的意义就像 Donald Knuth 的研究对程序员一样重要。架构师可以偏爱任何经典的、经过时间考验的软件系统开发方法。</p><p>　　SDLC 也可以成为评估架构师合适人选的有用机制。每个 SDLC 阶段都具有能提供相关线索的特征。SDLC 包含很多小的变体，但在此部分，我将使用几乎所有方法的公共基础部分。下面的列表详细说明了 SDLC 的各个阶段，并列出了好的架构师候选者在每个阶段表现出来的特征。</p><ul><li>　　<strong>分析：</strong>在分析期间，好的架构师会考虑非技术影响，以便了解需求和将在其中进行开发的环境。架构师可为风险评估任务带来广泛的软件经验供参考。寻找具有丰富经验的开发人员，以帮助业务部门理解技术人员正确解释需求所需的信息。寻找在开发的早期阶段能够预计可能遇到的问题的开发人员。 
</li><li>　　<strong>设计：</strong>在高级设计期间，好的架构师会收集问题空间的各个抽象元素，并就其进行沟通，以便开发团队草拟将要开发的系统的相关图表。架构师负责将需求谨慎地映射到所得到的系统体系结构的功能。在详细设计期间，他们所扮演的角色并不是核心角色，但为了根据整个系统的规则对特定模块的元素进行审查，仍然需要他们。寻找善于让团队能够预计设计决策对最终系统的影响的开发人员。寻找善于确定一些最佳构件来促进与技术和非技术受众沟通设计问题的开发人员。 
</li><li>　　<strong>实现：</strong>在实现期间，架构师对项目进行引导，以确保其符合系统体系结构。他们在一线评估技术更改请求，并确定如何对设计进行调整，以最好地处理此类请求。架构师还要密切了解开发人员的进度，特别要跟踪系统中模块间的集成点的状态。寻找经常对讨论进行引导来连接多个子系统的开发人员。寻找项目经理可以依赖其快速地进行与更改和出现的问题相关的风险评估的开发人员。 
</li><li>　　<strong>测试：</strong>架构师对系统集成和用户接受度测试进行指导，并负责评估进度的正确沟通的持续测试结果。寻找理解错误模式且善于将测试复查结果转换为行动计划的开发人员。 
</li><li>　　<strong>维护：</strong>在维护期间，架构师将发起关于系统集成的讨论。无论处理 IT 基础设施问题，还是确保部门之间的技术合作，架构师都必须完全理解应用程序，必须快速学习姊妹应用程序的体系结构，而且必须就集成点和风险进行有效沟通。寻找具有系统集成经验且表现出快速掌握全貌的能力的开发人员。系统集成是一项独特的任务。 </li></ul><p>　　<strong>架构师培养建议</strong></p><p>　　有些组织能比其他组织更有效地进行架构师培养。如果充分考虑到招聘此类新专业人才的困难，努力促成能鼓励开发人员发展为架构师的环境是非常明智的策略。但务必避免对不愿意或不适合走这条路的开发人员进行处罚。组织应该为开发人员制订多条发展路线，包括那些愿意继续担任开发人员的人。对架构师而言，资深开发人员不可或缺。他们可以实现系统中最关键的模块。通过对其他开发人员进行代码检查和测试支持，他们可帮助确保总体软件质量，而如果质量不能保证，即使最好的体系结构也毫无用处。</p><p>　　组织应制订个人评估程序，以鼓励开发人员考虑其职业目标，其中要包含体系结构设计的选项。应该鼓励经理在其下属中寻找体系结构设计人才。应该实现指导计划，让架构师与希望成为架构师的开发人员协作工作。应该鼓励开发人员通过参加各种协会、撰写文章和参加会议，从而参与到专业领域中来。通过这样参与进来，可帮助开发人员从新的角度理解系统，并帮助他们更好地就其认识进行沟通。这样还能培养可提高效率的重要创新想法。</p><p>　　<strong>结束语</strong></p><p>　　开发人员一旦迈出了通向体系结构设计专业方向的第一步，就可以利用很多资源来获得帮助，其中包括很多来自 IBM 的资源。有时候，此过程的最困难的部分就是第一步，而本文提供了一些线索和提示，经理和开发人员可以利用其来评估应该鼓励哪些人努力成为架构师。</p><img src ="http://www.blogjava.net/balajinima/aggbug/146914.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/balajinima/" target="_blank">李云泽</a> 2007-09-20 20:23 <a href="http://www.blogjava.net/balajinima/articles/146914.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[转]UML学习笔记（二）：运用面向对象思想 </title><link>http://www.blogjava.net/balajinima/articles/146900.html</link><dc:creator>李云泽</dc:creator><author>李云泽</author><pubDate>Thu, 20 Sep 2007 11:43:00 GMT</pubDate><guid>http://www.blogjava.net/balajinima/articles/146900.html</guid><wfw:comment>http://www.blogjava.net/balajinima/comments/146900.html</wfw:comment><comments>http://www.blogjava.net/balajinima/articles/146900.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/balajinima/comments/commentRss/146900.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/balajinima/services/trackbacks/146900.html</trackback:ping><description><![CDATA[
		<br />
		<div style="MARGIN-TOP: 1px; MARGIN-LEFT: 15px">
				<h2>
						<a title="永久链接：[转]UML学习笔记（二）：运用面向对象思想 " href="http://kenshinlk.javaeye.com/blog/59150">
								<font color="#002c99">[转]UML学习笔记（二）：运用面向对象思想 </font>
						</a>
				</h2>
		</div>
		<div style="MARGIN-TOP: 5px; MARGIN-LEFT: 15px">
				<b>关键字:</b>   UML学习笔记     </div>
		<div style="MARGIN-TOP: 10px; MARGIN-LEFT: 15px; OVERFLOW: auto">
				<table width="100%">
						<tbody>
								<tr>
										<td>
												<p class="MsoNormal">
														<span style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体">面向对象是一个依赖于几个基本原则的思想库。<span lang="EN-US"><?XML:NAMESPACE PREFIX = O /?><o:p></o:p></span></span>
												</p>
												<p class="MsoNormal">
														<span style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体">对象是类的实例。<span lang="EN-US"><o:p></o:p></span></span>
												</p>
												<p class="MsoNormal">
														<span style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体">类是具有相同属性和操作的一类对象集。<span lang="EN-US"><o:p></o:p></span></span>
												</p>
												<p class="MsoNormal">
														<span style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体">继承是面向对象中的一个重要方面。对象继承了所属类的属性和操作。类同样也可以继承其他类的属性和操作。<span lang="EN-US"><o:p></o:p></span></span>
												</p>
												<p class="MsoNormal">
														<span style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体">多态性是另一个重要的方面它是指不同的类中可以有相同名字的操作，并且这个操作在每个类中都能以各自不同的方式执行。<span lang="EN-US"><o:p></o:p></span></span>
												</p>
												<p class="MsoNormal">
														<span style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体">对象对其他对象和外部世界隐藏了其操作的执行过程。每个对象都要提供一个让其他对象用来执行该对象中操作的接口。<span lang="EN-US"><o:p></o:p></span></span>
												</p>
												<p class="MsoNormal">
														<span style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体">对象通过相互之间的消息传递协同工作。消息是执行操作的请求。<span lang="EN-US"><o:p></o:p></span></span>
												</p>
												<p class="MsoNormal">
														<span style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体">对象通常要和其他对象发生关联。关联可以具有多种形式。一个类的对象可能和多个其它类的对象同时发生关联。<span lang="EN-US"><o:p></o:p></span></span>
												</p>
												<p class="MsoNormal">
														<span style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体">聚集是关联的一种，聚集对象由部分对象组成。组成又是一种特殊的聚集。在一个组成对象中，部分对象只能作为组成对象的一部分与组成对象同时存在。</span>
												</p>
												<span style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体">
														<p class="MsoNormal">
																<span style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体">类的可视化表示<span lang="EN-US"><o:p></o:p></span></span>
														</p>
														<p class="MsoNormal">
																<span style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体">如果<span lang="EN-US">WashingMachine(</span>洗衣机<span lang="EN-US">)</span>类是<span lang="EN-US">Household Appliances(</span>家用电器<span lang="EN-US">)</span>包的一部分，那么这个类的名字为：<span lang="EN-US">Household Appliances::WashingMachine</span>。包名在左，类名在右，中间用双冒号隔开。这种类型的类名叫：路径名<span lang="EN-US">(pathname)</span>。<br />    <img height="32" alt="" src="http://www.cnblogs.com/images/cnblogs_com/bear-study-hard/UML/UML014.JPG" width="277" border="0" /><br /><span lang="EN-US"><o:p></o:p></span></span>
														</p>
														<p class="MsoNormal">
																<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体">
																</span>
																<span lang="EN-US">
																		<o:p>
																		</o:p>
																</span>
														</p>
														<p class="MsoNormal">
																<span style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体">属性<span lang="EN-US"><o:p></o:p></span></span>
														</p>
														<p class="MsoNormal">
																<span style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体">单字属性名小写。如果属性名包含了多个字，这些字要合并，并且除了第一个字外其余字首字母要大写。<span lang="EN-US"><o:p></o:p></span></span>
														</p>
														<p class="MsoNormal">
																<span style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体">对象名首字母小写，后面跟一个冒号，冒号后面是该对象所属的类名，并且整个名字要带下划线。<span lang="EN-US"><o:p></o:p></span></span>
														</p>
														<p class="MsoNormal">
																<span style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体">命名实例：<span lang="EN-US">myWasher:WashingMachine<o:p></o:p></span></span>
														</p>
														<p class="MsoNormal">
																<span style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体">匿名实例：<span lang="EN-US">WashingMachine<o:p></o:p></span></span>
														</p>
														<p class="MsoNormal">
																<span style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体">例：类的属性在该类的对象中都有具体值<br />    <img height="137" alt="" src="http://www.cnblogs.com/images/cnblogs_com/bear-study-hard/UML/UML015.JPG" width="290" border="0" /><br /><span lang="EN-US"><o:p></o:p></span></span>
														</p>
														<p class="MsoNormal">
																<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体">
																</span>
																<span lang="EN-US">
																		<o:p>
																		</o:p>
																</span>
														</p>
														<p class="MsoNormal">
																<span style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体">例：属性可以带类型和缺省值<br />    <img height="157" alt="" src="http://www.cnblogs.com/images/cnblogs_com/bear-study-hard/UML/UML016.JPG" width="302" border="0" /><br /><span lang="EN-US"><o:p></o:p></span></span>
														</p>
														<p class="MsoNormal">
																<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体">
																</span>
																<span lang="EN-US">
																		<o:p>
																		</o:p>
																</span>
														</p>
														<p class="MsoNormal">
																<span style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体">操作<span lang="EN-US"><o:p></o:p></span></span>
														</p>
														<p class="MsoNormal">
																<span style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体">单字操作名小写。如果操作名包含了多个字，这些字要合并，并且除了第一个字外其余字首字母要大写。<br />    <img height="230" alt="" src="http://www.cnblogs.com/images/cnblogs_com/bear-study-hard/UML/UML017.JPG" width="185" border="0" /><br /><span lang="EN-US"><o:p></o:p></span></span>
														</p>
														<p class="MsoNormal">
																<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体">
																</span>
																<span lang="EN-US">
																		<o:p>
																		</o:p>
																</span>
														</p>
														<p class="MsoNormal">
																<span style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体">在操作名后面的括号中可以说明操作所需要的参数和参数的类型。有一种操作较函数<span lang="EN-US">(function)</span>，它在完成操作后要返回一个返回值。可是指明函数的返回值及返回值的类型。上述全部的操作信息被称为操作的型构。<span lang="EN-US"><o:p></o:p></span></span>
														</p>
														<p class="MsoNormal">
																<span style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体">例：操作的型构<br />    <img height="219" alt="" src="http://www.cnblogs.com/images/cnblogs_com/bear-study-hard/UML/UML018.JPG" width="185" border="0" /><br /><span lang="EN-US"><o:p></o:p></span></span>
														</p>
														<p class="MsoNormal">
																<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体">
																</span>
																<span lang="EN-US">
																		<o:p>
																		</o:p>
																</span>
														</p>
														<p class="MsoNormal">
																<span style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体">属性、操作和可视化表达<span lang="EN-US"><o:p></o:p></span></span>
														</p>
														<p class="MsoNormal">
																<span style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体">有时，只显示类的一部分属性和操作很有用。为了说明你只表示出部分操作和属性，可以在列表的后面加上<span lang="EN-US">3</span>个小点“…”。这个符号叫省略符，这种省略了一个或多个属性或者操作的表示法叫做类的省略表示法。<span lang="EN-US"><o:p></o:p></span></span>
														</p>
														<p class="MsoNormal">
																<span style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体">如果属性或者操作列表太长，可以用构造型来组织属性或操作列表，以方便理解。构造型是<span lang="EN-US">UML</span>提供的扩展机制：它允许你创建新的模型元素以解决具体问题。构造型用双尖角括号括住的名字来表示。<span lang="EN-US"><o:p></o:p></span></span>
														</p>
														<p class="MsoNormal">
																<span style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体">例：省略符号说明还有没列出来的属性或操作<br />    <img height="136" alt="" src="http://www.cnblogs.com/images/cnblogs_com/bear-study-hard/UML/UML019.JPG" width="185" border="0" /><br /><span lang="EN-US"><o:p></o:p></span></span>
														</p>
														<p class="MsoNormal">
																<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体">
																</span>
																<span lang="EN-US">
																		<o:p>
																		</o:p>
																</span>
														</p>
														<p class="MsoNormal">
																<span style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体">例：可以使用构造型来组织属性和操作列表 <br />    <img height="303" alt="" src="http://www.cnblogs.com/images/cnblogs_com/bear-study-hard/UML/UML020.JPG" width="185" border="0" /><br /><span lang="EN-US"><o:p></o:p></span></span>
														</p>
														<p class="MsoNormal">
																<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体">
																</span>
																<span lang="EN-US">
																		<o:p>
																		</o:p>
																</span>
														</p>
														<p class="MsoNormal">
																<span style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体">职责和约束<span lang="EN-US"><o:p></o:p></span></span>
														</p>
														<p class="MsoNormal">
																<span style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体">职责描述了类做什么——也就是类的属性和操作能完成什么任务。<span lang="EN-US"><o:p></o:p></span></span>
														</p>
														<p class="MsoNormal">
																<span style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体">这里的想法是要有足够的信息以非二义性的方法去描述一个类。说明类的职责是消除二义性的一种非形式化的方法。<span lang="EN-US"><o:p></o:p></span></span>
														</p>
														<p class="MsoNormal">
																<span style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体">更形式化的方法是使用约束，它是一个用花括号括起来的自由格式的文本。括号中的文本指定了该类所要满足的一个或者多个规则。<span lang="EN-US"><o:p></o:p></span></span>
														</p>
														<p class="MsoNormal">
																<span style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体">例：在类图标中，操作列表区域的下面区域可以写类的职责<br />    <img height="396" alt="" src="http://www.cnblogs.com/images/cnblogs_com/bear-study-hard/UML/UML021.JPG" width="185" border="0" /><br /><span lang="EN-US"><o:p></o:p></span></span>
														</p>
														<p class="MsoNormal">
																<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体">
																</span>
																<span lang="EN-US">
																		<o:p>
																		</o:p>
																</span>
														</p>
														<p class="MsoNormal">
																<span style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体">例：用花括号括起来的规则表达式限制了洗衣机的容量之只能三者选一<span lang="EN-US"><o:p></o:p></span></span>
														</p>
														<p class="MsoNormal">
																<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体">
																		<o:p>
																				<img height="219" alt="" src="http://www.cnblogs.com/images/cnblogs_com/bear-study-hard/UML/UML022.JPG" width="372" border="0" /> </o:p>
																</span>
														</p>
														<p class="MsoNormal">
																<span style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体">附加注释<span lang="EN-US"><o:p></o:p></span></span>
														</p>
														<p class="MsoNormal">
																<span lang="EN-US">
																</span>
																<span lang="EN-US">
																		<o:p>
																		</o:p>
																</span>
														</p>
														<p class="MsoNormal">
																<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体">
																		<o:p>
																				<img height="225" alt="" src="http://www.cnblogs.com/images/cnblogs_com/bear-study-hard/UML/UML013.JPG" width="378" border="0" /> </o:p>
																</span>
														</p>
												</span>
										</td>
								</tr>
						</tbody>
				</table>
		</div>
<img src ="http://www.blogjava.net/balajinima/aggbug/146900.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/balajinima/" target="_blank">李云泽</a> 2007-09-20 19:43 <a href="http://www.blogjava.net/balajinima/articles/146900.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[转]UML学习笔记（一）：UML简介 </title><link>http://www.blogjava.net/balajinima/articles/146899.html</link><dc:creator>李云泽</dc:creator><author>李云泽</author><pubDate>Thu, 20 Sep 2007 11:41:00 GMT</pubDate><guid>http://www.blogjava.net/balajinima/articles/146899.html</guid><wfw:comment>http://www.blogjava.net/balajinima/comments/146899.html</wfw:comment><comments>http://www.blogjava.net/balajinima/articles/146899.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/balajinima/comments/commentRss/146899.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/balajinima/services/trackbacks/146899.html</trackback:ping><description><![CDATA[
		<br />
		<div style="MARGIN-TOP: 1px; MARGIN-LEFT: 15px">
				<h2>
						<a title="永久链接：[转]UML学习笔记（一）：UML简介 " href="http://kenshinlk.javaeye.com/blog/59149">
								<font color="#002c99">[转]UML学习笔记（一）：UML简介 </font>
						</a>
				</h2>
		</div>
		<div style="MARGIN-TOP: 5px; MARGIN-LEFT: 15px">
				<b>关键字:</b>   UML学习笔记     </div>
		<div style="MARGIN-TOP: 10px; MARGIN-LEFT: 15px; OVERFLOW: auto">
				<table width="100%">
						<tbody>
								<tr>
										<td>
												<p class="MsoNormal">
														<span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">统一建模语言（</span>
														<span lang="EN-US">Unified Modeling Language</span>
														<span roman??="" new="" ?times="" mso-hansi-font-family:="" roman?;="" times="">，</span>
														<span lang="EN-US">UML</span>
														<span roman??="" new="" ?times="" mso-hansi-font-family:="" roman?;="" times="">）</span>
														<span lang="EN-US">
																<?XML:NAMESPACE PREFIX = O /?>
																<o:p>
																</o:p>
														</span>
												</p>
												<p class="MsoNormal">
														<span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">一些术语：</span>
														<span lang="EN-US">
																<o:p>
																</o:p>
														</span>
												</p>
												<p class="MsoNormal">
														<span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">系统（</span>
														<span lang="EN-US">system</span>
														<span roman??="" new="" ?times="" mso-hansi-font-family:="" roman?;="" times="">）指的是硬件和软件的结合体，它能提供业务问题的解决方案。</span>
														<span lang="EN-US">
																<o:p>
																</o:p>
														</span>
												</p>
												<p class="MsoNormal">
														<span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">系统开发（</span>
														<span lang="EN-US">system development</span>
														<span roman??="" new="" ?times="" mso-hansi-font-family:="" roman?;="" times="">）是为客户建立一个系统的过程。</span>
														<span lang="EN-US">
																<o:p>
																</o:p>
														</span>
												</p>
												<p class="MsoNormal">
														<span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">客户（</span>
														<span lang="EN-US">client</span>
														<span roman??="" new="" ?times="" mso-hansi-font-family:="" roman?;="" times="">）是需要解决问题的人。</span>
														<span lang="EN-US">
																<o:p>
																</o:p>
														</span>
												</p>
												<p class="MsoNormal">
														<span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">系统分析员（</span>
														<span lang="EN-US">analyst</span>
														<span roman??="" new="" ?times="" mso-hansi-font-family:="" roman?;="" times="">）将客户所要解决的问题编制成文档，并将该文档转交给开发人员。</span>
														<span lang="EN-US">
																<o:p>
																</o:p>
														</span>
												</p>
												<p class="MsoNormal">
														<span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">开发人员（</span>
														<span lang="EN-US">developer</span>
														<span roman??="" new="" ?times="" mso-hansi-font-family:="" roman?;="" times="">）是为了及决客户的问题而构造软件并在计算机硬件上实施该软件的程序员。</span>
														<span lang="EN-US">
																<o:p>
																</o:p>
														</span>
												</p>
												<p class="MsoNormal">
														<span lang="EN-US" style="FONT-SIZE: 9pt">
																<o:p> </o:p>
														</span>
												</p>
												<p class="MsoNormal">
														<span lang="EN-US" style="FONT-SIZE: 9pt">UML</span>
														<span roman??="" new="" ?times="" mso-hansi-font-family:="" roman?;="" times="">的组成</span>
														<span lang="EN-US">
																<o:p>
																</o:p>
														</span>
												</p>
												<p class="MsoNormal">
														<span lang="EN-US" style="FONT-SIZE: 9pt">UML</span>
														<span roman??="" new="" ?times="" mso-hansi-font-family:="" roman?;="" times="">包括了一些可以相互组合图表的图形元素。</span>
														<span lang="EN-US">
																<o:p>
																</o:p>
														</span>
												</p>
												<p class="MsoNormal">
														<span lang="EN-US" style="FONT-SIZE: 9pt">1</span>
														<span roman??="" new="" ?times="" mso-hansi-font-family:="" roman?;="" times="">．类图</span>
														<span lang="EN-US">
																<o:p>
																</o:p>
														</span>
												</p>
												<p class="MsoNormal">
														<span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">一个类（</span>
														<span lang="EN-US">class</span>
														<span roman??="" new="" ?times="" mso-hansi-font-family:="" roman?;="" times="">）是一类或一组具有类似属性和共同行为的事物。</span>
														<span lang="EN-US">
																<o:p>
																</o:p>
														</span>
												</p>
												<p class="MsoNormal">
														<span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">矩形方框代表类的图标，它被分成</span>
														<span lang="EN-US">3</span>
														<span roman??="" new="" ?times="" mso-hansi-font-family:="" roman?;="" times="">个区域。最上面的区域中是类名，中间区域是类的属性，最下面区域里列的是类的操作。</span>
														<span lang="EN-US">
																<o:p>
																</o:p>
														</span>
												</p>
												<p class="MsoNormal" align="center">
														<span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">举一个例子，属于洗衣机（</span>
														<span lang="EN-US">washing machine</span>
														<span roman??="" new="" ?times="" mso-hansi-font-family:="" roman?;="" times="">）类的事物都具有诸如品牌（</span>
														<span lang="EN-US">brand name</span>
														<span roman??="" new="" ?times="" mso-hansi-font-family:="" roman?;="" times="">）、型号（</span>
														<span lang="EN-US">model name</span>
														<span roman??="" new="" ?times="" mso-hansi-font-family:="" roman?;="" times="">）、序列号（</span>
														<span lang="EN-US">serial number</span>
														<span roman??="" new="" ?times="" mso-hansi-font-family:="" roman?;="" times="">）和容量（</span>
														<span lang="EN-US">capacity</span>
														<span roman??="" new="" ?times="" mso-hansi-font-family:="" roman?;="" times="">）等属性。这类事物的行为包括“加衣物（</span>
														<span lang="EN-US">add clothes</span>
														<span roman??="" new="" ?times="" mso-hansi-font-family:="" roman?;="" times="">）”、“加洗涤剂（</span>
														<span lang="EN-US">add detergent</span>
														<span roman??="" new="" ?times="" mso-hansi-font-family:="" roman?;="" times="">）”、“开机（</span>
														<span lang="EN-US">turn on</span>
														<span roman??="" new="" ?times="" mso-hansi-font-family:="" roman?;="" times="">）”和“取出衣物（</span>
														<span lang="EN-US">remove clothes</span>
														<span roman??="" new="" ?times="" mso-hansi-font-family:="" roman?;="" times="">）”等操作。<br /><img alt="" src="http://www.cnblogs.com/images/cnblogs_com/bear-study-hard/UML/UML001.JPG" border="0" /><br /></span>
														<span lang="EN-US">
																<o:p>
																</o:p>
														</span>
												</p>
												<p class="MsoNormal" align="center">
														<span lang="EN-US">
																<?XML:NAMESPACE PREFIX = V /?>
																<v:shapetype id="_x0000_t75" path="m@4@5l@4@11@9@11@9@5xe" o:preferrelative="t" filled="f" stroked="f" coordsize="21600,21600" o:spt="75">
																		<v:stroke join="">
																		</v:stroke>
																		<v:formulas>
																				<v:f eqn="if lineDrawn pixelLineWidth 0">
																				</v:f>
																				<v:f eqn="sum @0 1 0">
																				</v:f>
																				<v:f eqn="sum 0 0 @1">
																				</v:f>
																				<v:f eqn="prod @2 1 2">
																				</v:f>
																				<v:f eqn="prod @3 21600 pixelWidth">
																				</v:f>
																				<v:f eqn="prod @3 21600 pixelHeight">
																				</v:f>
																				<v:f eqn="sum @0 0 1">
																				</v:f>
																				<v:f eqn="prod @6 1 2">
																				</v:f>
																				<v:f eqn="prod @7 21600 pixelWidth">
																				</v:f>
																				<v:f eqn="sum @8 21600 0">
																				</v:f>
																				<v:f eqn="prod @7 21600 pixelHeight">
																				</v:f>
																				<v:f eqn="sum @10 21600 0">
																				</v:f>
																		</v:formulas>
																		<v:path o:connecttype="rect" o:extrusionok="f" gradientshapeok="t">
																		</v:path>
																		<o:lock aspectratio="t" v:ext="edit">
																		</o:lock>
																</v:shapetype>
														</span>
														<span lang="EN-US">
																<o:p>
																</o:p>
														</span>
												</p>
												<p class="MsoNormal">
														<span lang="EN-US" style="FONT-SIZE: 9pt">2</span>
														<span roman??="" new="" ?times="" mso-hansi-font-family:="" roman?;="" times="">．对象图</span>
														<span lang="EN-US">
																<o:p>
																</o:p>
														</span>
												</p>
												<p class="MsoNormal">
														<span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">对象（</span>
														<span lang="EN-US">object</span>
														<span roman??="" new="" ?times="" mso-hansi-font-family:="" roman?;="" times="">）是一个类的实例，是具有具体属性值和行为的一个具体事物。例如，洗衣机的品牌可能是“</span>
														<span lang="EN-US">Laundatorium</span>
														<span roman??="" new="" ?times="" mso-hansi-font-family:="" roman?;="" times="">”，型号为“</span>
														<span lang="EN-US">Washmeister</span>
														<span roman??="" new="" ?times="" mso-hansi-font-family:="" roman?;="" times="">”，序列号为“</span>
														<span lang="EN-US">GL57774</span>
														<span roman??="" new="" ?times="" mso-hansi-font-family:="" roman?;="" times="">”，一次最多可以洗涤重量为</span>
														<?XML:NAMESPACE PREFIX = ST1 /?>
														<st1:chmetcnv tcsc="0" w:st="on" unitname="磅" sourcevalue="16" negative="False" numbertype="1" hasspace="False">
																<span lang="EN-US">16</span>
																<span roman??="" new="" ?times="" mso-hansi-font-family:="" roman?;="" times="">磅</span>
														</st1:chmetcnv>
														<span roman??="" new="" ?times="" mso-hansi-font-family:="" roman?;="" times="">的衣物。</span>
														<span lang="EN-US">
																<o:p>
																</o:p>
														</span>
												</p>
												<p class="MsoNormal" align="center">
														<span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">对象的图标也是一个矩形，和类的图标一样，但是对象名下面要带下划线。具体实例的名字位于冒号的左边而该实例所属的类名位于冒号的右边。<br /><img alt="" src="http://www.cnblogs.com/images/cnblogs_com/bear-study-hard/UML/UML002.JPG" border="0" /><br /></span>
														<span lang="EN-US">
																<o:p>
																</o:p>
														</span>
												</p>
												<p class="MsoNormal" align="center">
														<span lang="EN-US">
														</span>
												</p>
												<p class="MsoNormal">
														<span lang="EN-US" style="FONT-SIZE: 9pt">3</span>
														<span roman??="" new="" ?times="" mso-hansi-font-family:="" roman?;="" times="">．用例图</span>
														<span lang="EN-US">
																<o:p>
																</o:p>
														</span>
												</p>
												<p class="MsoNormal">
														<span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">用例（</span>
														<span lang="EN-US">use case</span>
														<span roman??="" new="" ?times="" mso-hansi-font-family:="" roman?;="" times="">）是从用户的观点对系统行为的一个描述。</span>
														<span lang="EN-US">
																<o:p>
																</o:p>
														</span>
												</p>
												<p class="MsoNormal">
														<span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">例，一个人使用一台洗衣机，显然是为了洗衣服（</span>
														<span lang="EN-US">wash clothes</span>
														<span roman??="" new="" ?times="" mso-hansi-font-family:="" roman?;="" times="">）。</span>
														<span lang="EN-US">
																<o:p>
																</o:p>
														</span>
												</p>
												<p class="MsoNormal" align="center">
														<span lang="EN-US">
														</span>
												</p>
												<p class="MsoNormal">
														<span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">代表洗衣机用户的智力小人形被称为参与者（</span>
														<span lang="EN-US">actor</span>
														<span roman??="" new="" ?times="" mso-hansi-font-family:="" roman?;="" times="">）。椭圆形代表用例。</span>
														<span lang="EN-US">
																<o:p>
																</o:p>
														</span>
												</p>
												<p class="MsoNormal" align="center">
														<span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">参与者（它是发起用例的实体）可以是一个人也可以是另一个系统。<br /><img alt="" src="http://www.cnblogs.com/images/cnblogs_com/bear-study-hard/UML/UML003.JPG" border="0" /><br /></span>
														<span lang="EN-US">
																<o:p>
																</o:p>
														</span>
												</p>
												<p class="MsoNormal">
														<span lang="EN-US" style="FONT-SIZE: 9pt">4</span>
														<span roman??="" new="" ?times="" mso-hansi-font-family:="" roman?;="" times="">．状态图</span>
														<span lang="EN-US">
																<o:p>
																</o:p>
														</span>
												</p>
												<p class="MsoNormal" align="center">
														<span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">一台洗衣机可以处于浸泡（</span>
														<span lang="EN-US">soak</span>
														<span roman??="" new="" ?times="" mso-hansi-font-family:="" roman?;="" times="">）、洗涤（</span>
														<span lang="EN-US">Wash</span>
														<span roman??="" new="" ?times="" mso-hansi-font-family:="" roman?;="" times="">）、漂洗（</span>
														<span lang="EN-US">Rinse</span>
														<span roman??="" new="" ?times="" mso-hansi-font-family:="" roman?;="" times="">）、脱水（</span>
														<span lang="EN-US">Spin</span>
														<span roman??="" new="" ?times="" mso-hansi-font-family:="" roman?;="" times="">）或者关机（</span>
														<span lang="EN-US">off</span>
														<span roman??="" new="" ?times="" mso-hansi-font-family:="" roman?;="" times="">）状态。<br /><img height="349" alt="" src="http://www.cnblogs.com/images/cnblogs_com/bear-study-hard/UML/UML004.JPG" width="81" border="0" /><br /></span>
														<span lang="EN-US">
																<o:p>
																</o:p>
														</span>
												</p>
												<p class="MsoNormal" align="center">
														<span lang="EN-US">
														</span>
												</p>
												<p class="MsoNormal">
														<span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">最顶端的符号代表起始状态，最底端的符号表示终止状态。</span>
														<span lang="EN-US">
																<o:p>
																</o:p>
														</span>
												</p>
												<p class="MsoNormal">
														<span lang="EN-US" style="FONT-SIZE: 9pt">5</span>
														<span roman??="" new="" ?times="" mso-hansi-font-family:="" roman?;="" times="">．顺序图</span>
														<span lang="EN-US">
																<o:p>
																</o:p>
														</span>
												</p>
												<p class="MsoNormal">
														<span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">类图和对象图标大的实系统的静态结构。在一个运行的系统中，对象之间要发生交互，并且这些交互要经历一定的时间。</span>
														<span lang="EN-US">UML</span>
														<span roman??="" new="" ?times="" mso-hansi-font-family:="" roman?;="" times="">顺序图所表达的正式这种基于时间的动态交互。</span>
														<span lang="EN-US">
																<o:p>
																</o:p>
														</span>
												</p>
												<p class="MsoNormal">
														<span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">例，洗衣机的构件包括一个注水的进水管（</span>
														<span lang="EN-US">Water Pipe</span>
														<span roman??="" new="" ?times="" mso-hansi-font-family:="" roman?;="" times="">）、一个用来装衣物的洗涤缸（</span>
														<span lang="EN-US">Drum</span>
														<span roman??="" new="" ?times="" mso-hansi-font-family:="" roman?;="" times="">）以一个排水管（</span>
														<span lang="EN-US">Drain</span>
														<span roman??="" new="" ?times="" mso-hansi-font-family:="" roman?;="" times="">）。假设已经完成了“加衣物”、“加洗涤剂”和“开机”操作。洗衣服这个用例被执行时按照如下顺序进行：</span>
														<span lang="EN-US">
																<o:p>
																</o:p>
														</span>
												</p>
												<p class="MsoNormal">
														<span lang="EN-US" style="FONT-SIZE: 9pt">1</span>
														<span roman??="" new="" ?times="" mso-hansi-font-family:="" roman?;="" times="">通过进水管想洗涤缸中注水。</span>
														<span lang="EN-US">
																<o:p>
																</o:p>
														</span>
												</p>
												<p class="MsoNormal">
														<span lang="EN-US" style="FONT-SIZE: 9pt">2</span>
														<span roman??="" new="" ?times="" mso-hansi-font-family:="" roman?;="" times="">洗涤缸保持</span>
														<span lang="EN-US">5</span>
														<span roman??="" new="" ?times="" mso-hansi-font-family:="" roman?;="" times="">分钟静止状态。</span>
														<span lang="EN-US">
																<o:p>
																</o:p>
														</span>
												</p>
												<p class="MsoNormal">
														<span lang="EN-US" style="FONT-SIZE: 9pt">3</span>
														<span roman??="" new="" ?times="" mso-hansi-font-family:="" roman?;="" times="">水注满，停止注水。</span>
														<span lang="EN-US">
																<o:p>
																</o:p>
														</span>
												</p>
												<p class="MsoNormal">
														<span lang="EN-US" style="FONT-SIZE: 9pt">4</span>
														<span roman??="" new="" ?times="" mso-hansi-font-family:="" roman?;="" times="">洗涤缸往返旋转</span>
														<span lang="EN-US">15</span>
														<span roman??="" new="" ?times="" mso-hansi-font-family:="" roman?;="" times="">分钟。</span>
														<span lang="EN-US">
																<o:p>
																</o:p>
														</span>
												</p>
												<p class="MsoNormal">
														<span lang="EN-US" style="FONT-SIZE: 9pt">5</span>
														<span roman??="" new="" ?times="" mso-hansi-font-family:="" roman?;="" times="">通过排水管排掉洗涤后的脏水。</span>
														<span lang="EN-US">
																<o:p>
																</o:p>
														</span>
												</p>
												<p class="MsoNormal">
														<span lang="EN-US" style="FONT-SIZE: 9pt">6</span>
														<span roman??="" new="" ?times="" mso-hansi-font-family:="" roman?;="" times="">重新开始注水。</span>
														<span lang="EN-US">
																<o:p>
																</o:p>
														</span>
												</p>
												<p class="MsoNormal">
														<span lang="EN-US" style="FONT-SIZE: 9pt">7</span>
														<span roman??="" new="" ?times="" mso-hansi-font-family:="" roman?;="" times="">洗涤缸继续往返旋转洗涤。</span>
														<span lang="EN-US">
																<o:p>
																</o:p>
														</span>
												</p>
												<p class="MsoNormal">
														<span lang="EN-US" style="FONT-SIZE: 9pt">8</span>
														<span roman??="" new="" ?times="" mso-hansi-font-family:="" roman?;="" times="">停止向洗衣机中注水。</span>
														<span lang="EN-US">
																<o:p>
																</o:p>
														</span>
												</p>
												<p class="MsoNormal">
														<span lang="EN-US" style="FONT-SIZE: 9pt">9</span>
														<span roman??="" new="" ?times="" mso-hansi-font-family:="" roman?;="" times="">通过排水管排掉漂洗衣物的水。</span>
														<span lang="EN-US">
																<o:p>
																</o:p>
														</span>
												</p>
												<p class="MsoNormal">
														<span lang="EN-US" style="FONT-SIZE: 9pt">10</span>
														<span roman??="" new="" ?times="" mso-hansi-font-family:="" roman?;="" times="">洗涤缸加快速度单方向旋转</span>
														<span lang="EN-US">5</span>
														<span roman??="" new="" ?times="" mso-hansi-font-family:="" roman?;="" times="">分钟。</span>
														<span lang="EN-US">
																<o:p>
																</o:p>
														</span>
												</p>
												<p class="MsoNormal">
														<span lang="EN-US" style="FONT-SIZE: 9pt">11</span>
														<span roman??="" new="" ?times="" mso-hansi-font-family:="" roman?;="" times="">洗涤缸停止旋转，洗衣过程结束。</span>
														<span lang="EN-US">
																<o:p>
																</o:p>
														</span>
												</p>
												<p class="MsoNormal" align="center">
														<span lang="EN-US">
														</span>
														<span lang="EN-US">
																<o:p>
																</o:p>
														</span>
												</p>
												<p class="MsoNormal" align="center">
														<span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">图中，对象之间发送的消息有：注入新水（</span>
														<span lang="EN-US">Send fresh water</span>
														<span roman??="" new="" ?times="" mso-hansi-font-family:="" roman?;="" times="">）、保持静止（</span>
														<span lang="EN-US">Remain stationary</span>
														<span roman??="" new="" ?times="" mso-hansi-font-family:="" roman?;="" times="">）、停止注水（</span>
														<span lang="EN-US">Stop</span>
														<span roman??="" new="" ?times="" mso-hansi-font-family:="" roman?;="" times="">）、往返旋转（</span>
														<span lang="EN-US">Ratate back and forth</span>
														<span roman??="" new="" ?times="" mso-hansi-font-family:="" roman?;="" times="">）、排掉洗涤后的脏水（</span>
														<span lang="EN-US">Send soapy water</span>
														<span roman??="" new="" ?times="" mso-hansi-font-family:="" roman?;="" times="">）、排掉漂洗过的水（</span>
														<span lang="EN-US">Send rinse water</span>
														<span roman??="" new="" ?times="" mso-hansi-font-family:="" roman?;="" times="">）等。<br /><img height="645" alt="" src="http://www.cnblogs.com/images/cnblogs_com/bear-study-hard/UML/UML005.JPG" width="506" border="0" /><br /></span>
														<span lang="EN-US">
																<o:p>
																</o:p>
														</span>
												</p>
												<p class="MsoNormal">
														<span lang="EN-US" style="FONT-SIZE: 9pt">6</span>
														<span roman??="" new="" ?times="" mso-hansi-font-family:="" roman?;="" times="">．活动图<br /></span>
														<span lang="EN-US">
																<o:p>
																</o:p>
														</span>
												</p>
												<p class="MsoNormal" align="left">
														<span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">用例和对象的行为中的各个活动之间通常具有时间顺序。</span>
												</p>
												<p class="MsoNormal" align="left">
														<span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">
																<img alt="" src="http://www.cnblogs.com/images/cnblogs_com/bear-study-hard/UML/UML006.JPG" border="0" />
																<br />
														</span>
														<span lang="EN-US">
																<o:p>
																</o:p>
														</span>
												</p>
												<p class="MsoNormal" align="center">
														<span lang="EN-US">
														</span>
														<span lang="EN-US">
																<o:p>
																</o:p>
														</span>
												</p>
												<p class="MsoNormal">
														<span lang="EN-US" style="FONT-SIZE: 9pt">7</span>
														<span roman??="" new="" ?times="" mso-hansi-font-family:="" roman?;="" times="">．协作图</span>
														<span lang="EN-US">
																<o:p>
																</o:p>
														</span>
												</p>
												<p class="MsoNormal">
														<span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">系统的工作目标是由系统中各组成元素相互协作完成的。例子中洗衣机构件的类集中又增加了一个内部计时器（</span>
														<span lang="EN-US">Internal Timer</span>
														<span roman??="" new="" ?times="" mso-hansi-font-family:="" roman?;="" times="">）。在经过一段时间后，定时器停止注水，然后启动洗涤缸往返旋转。图中的序号代表命令消息的发送顺序。<br /><img alt="" src="http://www.cnblogs.com/images/cnblogs_com/bear-study-hard/UML/UML007.JPG" border="0" /><br /></span>
														<span lang="EN-US">
																<o:p>
																</o:p>
														</span>
												</p>
												<p class="MsoNormal" align="center">
														<span lang="EN-US">
														</span>
														<span lang="EN-US">
																<o:p>
																</o:p>
														</span>
												</p>
												<p class="MsoNormal">
														<span lang="EN-US" style="FONT-SIZE: 9pt">8</span>
														<span roman??="" new="" ?times="" mso-hansi-font-family:="" roman?;="" times="">．构件图</span>
														<span lang="EN-US">
																<o:p>
																</o:p>
														</span>
												</p>
												<p class="MsoNormal">
														<span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">构件图和部署图和整个计算机系统密切相关。<br /><img alt="" src="http://www.cnblogs.com/images/cnblogs_com/bear-study-hard/UML/UML008.JPG" border="0" /><br /></span>
														<span lang="EN-US">
																<o:p>
																</o:p>
														</span>
												</p>
												<p class="MsoNormal">
														<span lang="EN-US">
														</span>
														<span lang="EN-US">
																<o:p>
																</o:p>
														</span>
												</p>
												<p class="MsoNormal">
														<span lang="EN-US" style="FONT-SIZE: 9pt">9</span>
														<span roman??="" new="" ?times="" mso-hansi-font-family:="" roman?;="" times="">．部署图</span>
														<span lang="EN-US">
																<o:p>
																</o:p>
														</span>
												</p>
												<p class="MsoNormal">
														<span lang="EN-US" style="FONT-SIZE: 9pt">UML</span>
														<span roman??="" new="" ?times="" mso-hansi-font-family:="" roman?;="" times="">部署图显示了基于计算机系统的物理体系结构。它可以描述计算机和设备，展示它们之间的连接，以及驻留在每台机器中的软件。每台计算机用一个立方体来表示，立方体之间的连线表示这些计算机之间的通信关系。</span>
														<span lang="EN-US">
																<o:p>
																</o:p>
														</span>
												</p>
												<p class="MsoNormal" align="center">
														<span lang="EN-US">
														</span>
														<span lang="EN-US">
																<o:p>
																</o:p>
														</span>
												</p>
												<p class="MsoNormal">
														<span lang="EN-US" style="FONT-SIZE: 9pt">
																<o:p>
																		<img alt="" src="http://www.cnblogs.com/images/cnblogs_com/bear-study-hard/UML/UML009.JPG" border="0" /> </o:p>
														</span>
												</p>
												<p class="MsoNormal">
														<span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">如果需要将图中的组织元素分组，或者在图中说明一些类或构件是某个特定子系统的一部分，可以通过将这些元素组织成包（</span>
														<span lang="EN-US">package</span>
														<span roman??="" new="" ?times="" mso-hansi-font-family:="" roman?;="" times="">）来达到此目的。包用一边突起的公文夹形图标来表示。<br /><img alt="" src="http://www.cnblogs.com/images/cnblogs_com/bear-study-hard/UML/UML010.JPG" border="0" /><br /></span>
														<span lang="EN-US">
																<o:p>
																</o:p>
														</span>
												</p>
												<p class="MsoNormal" align="center">
														<span lang="EN-US" style="FONT-SIZE: 9pt">
														</span>
														<span lang="EN-US">
																<o:p>
																</o:p>
														</span>
												</p>
												<p class="MsoNormal">
														<span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">注释（</span>
														<span lang="EN-US">note</span>
														<span roman??="" new="" ?times="" mso-hansi-font-family:="" roman?;="" times="">）的图标是一个带折角的矩形，矩形框中是解释性文字。注释和被注释的图元素之间用一条虚线连接。<br /><img alt="" src="http://www.cnblogs.com/images/cnblogs_com/bear-study-hard/UML/UML011.JPG" border="0" /><br /></span>
														<span lang="EN-US">
																<o:p>
																</o:p>
														</span>
												</p>
												<p class="MsoNormal" align="center">
														<span lang="EN-US">
														</span>
														<span lang="EN-US">
																<o:p>
																</o:p>
														</span>
												</p>
												<p class="MsoNormal">
														<span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">构造型（</span>
														<span lang="EN-US">stereotype</span>
														<span roman??="" new="" ?times="" mso-hansi-font-family:="" roman?;="" times="">）能够使用现有的</span>
														<span lang="EN-US">UML</span>
														<span roman??="" new="" ?times="" mso-hansi-font-family:="" roman?;="" times="">元素来定制新的元素。构造型用尖对括号括起来的一个名称来表示，这个括号叫双尖括号（</span>
														<span lang="EN-US">guillemets</span>
														<span roman??="" new="" ?times="" mso-hansi-font-family:="" roman?;="" times="">）。</span>
														<span lang="EN-US">
																<o:p>
																</o:p>
														</span>
												</p>
												<p class="MsoNormal" align="center">
														<span lang="EN-US" style="FONT-SIZE: 9pt">
														</span>
														<span lang="EN-US">
																<o:p>
																</o:p>
														</span>
												</p>
												<p class="MsoNormal">
														<span lang="EN-US" style="FONT-SIZE: 9pt">
																<o:p>
																		<img alt="" src="http://www.cnblogs.com/images/cnblogs_com/bear-study-hard/UML/UML012.JPG" border="0" /> </o:p>
														</span>
												</p>
										</td>
								</tr>
						</tbody>
				</table>
		</div>
<img src ="http://www.blogjava.net/balajinima/aggbug/146899.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/balajinima/" target="_blank">李云泽</a> 2007-09-20 19:41 <a href="http://www.blogjava.net/balajinima/articles/146899.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>