﻿<?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-vandalor-随笔分类-设计模式</title><link>http://www.blogjava.net/vandalor/category/20827.html</link><description>海纳百川</description><language>zh-cn</language><lastBuildDate>Sat, 24 Mar 2007 03:09:12 GMT</lastBuildDate><pubDate>Sat, 24 Mar 2007 03:09:12 GMT</pubDate><ttl>60</ttl><item><title>   读后感：设计模式  </title><link>http://www.blogjava.net/vandalor/archive/2007/03/24/106025.html</link><dc:creator>vandalor(海纳百川)</dc:creator><author>vandalor(海纳百川)</author><pubDate>Sat, 24 Mar 2007 02:49:00 GMT</pubDate><guid>http://www.blogjava.net/vandalor/archive/2007/03/24/106025.html</guid><wfw:comment>http://www.blogjava.net/vandalor/comments/106025.html</wfw:comment><comments>http://www.blogjava.net/vandalor/archive/2007/03/24/106025.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/vandalor/comments/commentRss/106025.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/vandalor/services/trackbacks/106025.html</trackback:ping><description><![CDATA[
		<h1 style="MARGIN: 17pt 0cm 16.5pt">
				<span lang="EN-US">
						<span style="mso-tab-count: 4">                </span>
						<span style="mso-tab-count: 1">   </span>
				</span>
		</h1>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<span style="mso-tab-count: 1">       </span>
				</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">
						<font face="Times New Roman">设计模式，以前也考虑去学习过，可是老是听说设计模式是很难学习的，也认为这个东西应该是系统分析师这些人去研究的东西。</font>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<span style="mso-tab-count: 1">       </span>
				</span>
				<font face="Times New Roman">
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">最近几个月自己做毕业设计，一个电子购物网站。一个多月，我自学了</span>
						<span lang="EN-US">structs+hibernat</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的基本原理和应用，然后根据自己对面向对象的一些理解现了网站的基本功能！可是当我回顾整个系统的时候，我发现自己的代码显的十分的丑陋</span>
						<span lang="EN-US">-----</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">主要表现为类爆炸，模块的耦合性太高。这给我一个知觉：重构。</span>
				</font>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<span style="mso-tab-count: 1">       </span>
				</span>
				<font face="Times New Roman">
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">重构，说起来轻松，可是我还真不知道怎么去开始。因为我也是知觉上告诉我应该去重构下系统的！查看了</span>
						<span lang="EN-US">jpetstore</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的代码后，我第一次在程序中运用了“抽象工厂”这种设计模式来封装了我的</span>
						<span lang="EN-US">DAO</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">层。虽然在很大程度上改善了我的代码，可是我发现我的系统变的复杂</span>
						<span lang="EN-US">----</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">迷糊</span>
						<span lang="EN-US">+</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">迷糊</span>
						<span lang="EN-US">+</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">迷糊！</span>
				</font>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<span style="mso-tab-count: 1">       </span>
				</span>
				<font face="Times New Roman">
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">由于在运用了工厂模式之后，我发现自己以前写的项目（也许应该叫做编程练习准确些）缺少就是这种东西</span>
						<span lang="EN-US">----</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">感觉上虽然有点复杂可是却提供了很大的灵活性！意识到自己的缺陷之后，我开始了阅读“设计模式”方面的书籍！</span>
				</font>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<span style="mso-tab-count: 1">       </span>
				</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">
						<font face="Times New Roman">我希望在设计模式里找到一些我所需要的东西！确实是这样，在这里我开始用不同的角度路去看问题。</font>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt">
				<font face="Times New Roman">
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">以前我做小项目的时候，比如电子购物系统，我会从界面开始来一步一步系统，象登陆模块，我会先搞好界面，然后开始编写事件处理</span>
						<span lang="EN-US">--------</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">习惯了事件驱动模式的</span>
						<span lang="EN-US">window</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">开发了，呵呵！到了最后我会发现自己的程序完全是一条直线，根本没有伸缩行</span>
						<span lang="EN-US">---</span>
				</font>
		</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'">
						<font face="Times New Roman">很长的一段时间，我都觉的这种编程一点意思都没，所以我很想参与真正项目中来改变自己的这种现状（找不到啊，郁闷，没人带！）</font>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<span style="mso-tab-count: 1">       </span>
				</span>
				<font face="Times New Roman">
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">在我还没有开始接触设计模式之前，我以为自己至少也应该基本了解面向对象是个什么大概的东西（封装啊，继承，多态）。可是当我深入其中，才发现面向对象可以是这样的，系统应该这样来分析。在设计模式的世界里，我开始接触到“场景”，“基于模式的面向对象设计”，“变化点与共同点（</span>
						<span lang="EN-US">CVA</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">）”。我发现自己深陷其中，在书中，我被著者对设计模式的理解所吸引。在书里，著者通过对自己实际问题的</span>
						<span lang="EN-US">N</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">次解决方案的利弊的分析，逐步推导出我们所熟悉的设计模式（工厂模式，门面模式。。）。“基与模式的面向对象设计”这中新的设计思想已经开始在我心地埋下了种子。</span>
				</font>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<span style="mso-tab-count: 1">       </span>
				</span>
				<font face="Times New Roman">
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">学习设计模式吧，我觉的最重要的就是理解它的思想！书上这么说的，设计模式不是一个人创造出来，而是由别人总结出来的。设计模式本身其实我们并不陌生，也许你也在用它，可是你不知道自己使用的是一种什么模式。就好象我们经常用的</span>
						<span lang="EN-US">DBoperation</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">类来封装数据库的基本操作一样，我门只知道这是一种封装，而不清楚他是一种</span>
						<span lang="EN-US">”façade--</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">门面</span>
						<span lang="EN-US">”</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">设计模式。</span>
				</font>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<font face="Times New Roman">
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">还有在</span>
						<span lang="EN-US">web</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">应用中，我们经常会封装的</span>
						<span lang="EN-US">DA</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">层，也就是数据访问层，其实它是一种</span>
						<span lang="EN-US">bridge</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">桥接模式。经常听同学说，设计模式理解起来不是很难。难就在于怎么去使用设计模式，其实这和我们刚接触面向对象是一样的，我们知道继承和多态是那么个回事，可是在自己的程序中到底怎么用还是不知道。我看的这本书很大程度上是告诉你怎么去发现模式，然后去运用模式。书中，它把设计模式说成是在特定的场景下的一种最优解决方案。</span>
				</font>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<span style="mso-tab-count: 1">       </span>
				</span>
				<font face="Times New Roman">
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">不说了，下次我会对具体的设计模式写下自己的一些看法（希望把</span>
						<span lang="EN-US">4</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">人帮的</span>
						<span lang="EN-US">23</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">个设计模式都写一遍）。当然了，我也努力把自己学到这些想法在自己的电子购物系统的重构中运用上去。</span>
				</font>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<span style="mso-tab-count: 1">       </span>
				</span>
				<font face="Times New Roman">
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">最后吧，我把自己看的这本书的名字写上去，做为一本入门书籍，我觉得是</span>
						<span lang="EN-US">the best!!</span>
				</font>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<font face="Times New Roman">
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">《设计模式精解》</span>
						<span lang="EN-US">----</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">清华大学出版社。不过看这本书之前，我个人建议是先基本了解下</span>
						<span lang="EN-US">4</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">人帮的</span>
						<span lang="EN-US">23</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">个设计模式。</span>
				</font>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<span style="mso-tab-count: 1">       </span>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<span style="mso-tab-count: 1">       </span>
				</span>
		</p>
<img src ="http://www.blogjava.net/vandalor/aggbug/106025.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/vandalor/" target="_blank">vandalor(海纳百川)</a> 2007-03-24 10:49 <a href="http://www.blogjava.net/vandalor/archive/2007/03/24/106025.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>