﻿<?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-礼必风-随笔分类-JAVA与设计模式</title><link>http://www.blogjava.net/bily/category/17262.html</link><description>IT不等于it</description><language>zh-cn</language><lastBuildDate>Fri, 02 Mar 2007 03:07:32 GMT</lastBuildDate><pubDate>Fri, 02 Mar 2007 03:07:32 GMT</pubDate><ttl>60</ttl><item><title>什么是模式？什么是框架？</title><link>http://www.blogjava.net/bily/archive/2006/11/15/81319.html</link><dc:creator>礼必风</dc:creator><author>礼必风</author><pubDate>Wed, 15 Nov 2006 09:06:00 GMT</pubDate><guid>http://www.blogjava.net/bily/archive/2006/11/15/81319.html</guid><wfw:comment>http://www.blogjava.net/bily/comments/81319.html</wfw:comment><comments>http://www.blogjava.net/bily/archive/2006/11/15/81319.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/bily/comments/commentRss/81319.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/bily/services/trackbacks/81319.html</trackback:ping><description><![CDATA[1．什么是模式？<br />模式，即pattern。其实就是解决某一类问题的方法论。你把解决某类问题的方法总结归纳到理论高度，那就是模式。 
<p>Alexander给出的经典定义是：每个模式都描述了一个在我们的环境中不断出现的问题，然后描述了该问题的解决方案的核心。通过这种方式，你可以无数次地使用那些已有的解决方案，无需在重复相同的工作。</p><p>模式有不同的领域，建筑领域有建筑模式，软件设计领域也有设计模式。当一个领域逐渐成熟的时候，自然会出现很多模式。</p><p>什么是框架？<br />框架，即framework。其实就是某种应用的半成品，就是一组组件，供你选用完成你自己的系统。简单说就是使用别人搭好的舞台，你来做表演。而且，框架一般是成熟的，不断升级的软件。</p><p>2．为什么要用模式？<br />因为模式是一种指导，在一个良好的指导下，有助于你完成任务，有助于你作出一个优良的设计方案，达到事半功倍的效果。而且会得到解决问题的最佳办法。</p><p>为什么要用框架？<br />因为软件系统发展到今天已经很复杂了，特别是服务器端软件，设计到的知识，内容，问题太多。在某些方面使用别人成熟的框架，就相当于让别人帮你完成一些基础工作，你只需要集中精力完成系统的业务逻辑设计。而且框架一般是成熟，稳健的，他可以处理系统很多细节问题，比如，事物处理，安全性，数据流控制等问题。还有框架一般都经过很多人使用，所以结构很好，所以扩展性也很好，而且它是不断升级的，你可以直接享受别人升级代码带来的好处。<br />框架一般处在低层应用平台（如J2EE）和高层业务逻辑之间的中间层。</p><p>软件为什么要分层？<br />为了实现“高内聚、低耦合”。把问题划分开来各个解决，易于控制，易于延展，易于分配资源…总之好处很多啦：）。</p><p>3．以下所述主要是JAVA，J2EE方面的模式和框架：<br />常见的设计模式有什么？<br />首先，你要了解的是GOF的《设计模式--可复用面向对象软件的基础》一书（这个可以说是程序员必备的了），注意：GOF不是一个人，而是指四个人。它的原意是Gangs Of Four,就是“四人帮”，就是指此书的四个作者：Erich Gamma,Richard Helm，Ralph Johnson,John Vlissides。这本书讲了23种主要的模式，包括：抽象工厂、适配器、外观模式等。<br />还有其他的很多模式，估计有100多种。</p><p>软件设计模式太多，就我的理解简单说一下最常见的MVC模式。<br />MVC模式是1996年由Buschmann提出的：<br />模型（Model）：就是封装数据和所有基于对这些数据的操作。<br />视图（View）：就是封装的是对数据显示，即用户界面。<br />控制器（Control）：就是封装外界作用于模型的操作和对数据流向的控制等。</p><p>另外：<br />RUP（Rational Unified Process）软件统一过程，XP（Extreme Programming）极端编程，这些通常被叫做“过程方法”，是一种软件项目实施过程的方法论，它是针对软件项目的实施过程提出的方法策略。也是另一个角度的模式。</p><img src ="http://www.blogjava.net/bily/aggbug/81319.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/bily/" target="_blank">礼必风</a> 2006-11-15 17:06 <a href="http://www.blogjava.net/bily/archive/2006/11/15/81319.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>