java基础 java中模式和框架的介绍和区别

信惠生活服务

信惠生活服务

2016-02-19 21:00

图老师设计创意栏目是一个分享最好最实用的教程的社区,我们拥有最用心的各种教程,今天就给大家分享java基础 java中模式和框架的介绍和区别的教程,热爱PS的朋友们快点看过来吧!

1.什么是模式?

模式,即pattern。其实就是解决某一类问题的方法论。你把解决某类问题的方法总结归纳到理论高度,那就是模式。

Alexander给出的经典定义是:每个模式都描述了一个在我们的环境中不断出现的问题,然后描述了该问题的解决方案的核心。通过这种方式,你可以无数次地使用那些已有的解决方案,无需在重复相同的工作。

模式有不同的领域,建筑领域有建筑模式,软件设计领域也有设计模式。当一个领域逐渐成熟的时候,自然会出现很多模式。

什么是框架?

框架,即framework。其实就是某种应用的半成品,就是一组组件,供你选用完成你自己的系统。简单说就是使用别人搭好的舞台,你来做表演。而且,框架一般是成熟的,不断升级的软件。

2.为什么要用模式?

因为模式是一种指导,在一个良好的指导下,有助于你完成任务,有助于你作出一个优良的设计方案,达到事半功倍的效果。而且会得到解决问题的最佳办法。

为什么要用框架?

因为软件系统发展到今天已经很复杂了,特别是服务器端软件,设计到的知识,内容,问题太多。在某些方面使用别人成熟的框架,就相当于让别人帮你完成一些基础工作,你只需要集中精力完成系统的业务逻辑设计。而且框架一般是成熟,稳健的,他可以处理系统很多细节问题,比如,事物处理,安全性,数据流控制等问题。还有框架一般都经过很多人使用,所以结构很好,所以扩展性也很好,而且它是不断升级的,你可以直接享受别人升级代码带来的好处。

框架一般处在低层应用平台(如J2EE)和高层业务逻辑之间的中间层。

软件为什么要分层?

为了实现“高内聚、低耦合”。把问题划分开来各个解决,易于控制,易于延展,易于分配资源…总之好处很多啦:)。

3.以下所述主要是JAVA,J2EE方面的模式和框架:

常见的设计模式有什么?

首先,你要了解的是GOF的《设计模式--可复用面向对象软件的基础》一书(这个可以说是程序员必备的了),注意:GOF不是一个人,而是指四个人。它的原意是Gangs Of Four,就是“四人帮”,就是指此书的四个作者:Erich Gamma,Richard Helm,Ralph Johnson,John Vlissides。这本书讲了23种主要的模式,包括:抽象工厂、适配器、外观模式等。

还有其他的很多模式,估计有100多种。

软件设计模式太多,就我的理解简单说一下最常见的MVC模式。

MVC模式是1996年由Buschmann提出的:

模型(Model):就是封装数据和所有基于对这些数据的操作。

视图(View):就是封装的是对数据显示,即用户界面。

控制器(Control):就是封装外界作用于模型的操作和对数据流向的控制等。

另外:

RUP(Rational Unified Process)软件统一过程,XP(Extreme Programming)极端编程,这些通常被叫做“过程方法”,是一种软件项目实施过程的方法论,它是针对软件项目的实施过程提出的方法策略。也是另一个角度的模式。

4.常见的JAVA框架有什么?

WAF:

全称:WEB APPLICATION FRAMEWORK

主要应用方面:EJB层,(WEB层也有,但是比较弱)。

主要应用技术:EJB等

出处:http://java.sun.com/blueprints/code/index.html

简述:这是SUN在展示J2EE平台时所用的例子PetStore(宠物商店系统)里面的框架。是SUN蓝皮书例子程序中提出的应用框架。它实现了 MVC和其他良好的设计模式。SUN的网站上有技术资料,最好下载PetStore来研究,WEBLOGIC里自带此系统,源码在bea/weblogic700/samples/server/src/petstore。这是学习了解J2EE的首选框架。

Struts:

主要应用方面:WEB层。

主要应用技术:JSP,TagLib,JavaBean,XML等

出处:http://jakarta.apache.org/struts/index.html

简述:这是APACHE的开源项目,目前应用很广泛。基于MVC模式,结构很好,基于JSP。Jbuilder8里已经集成了STRUTS1.02的制作。

简述WAF+STRUTS结合的例子:WEB层用STRUTS,EJB层用WAF:

JSP(TagLib)——ActionForm——Action —— Event——EJBAction——EJB  ——DAO——Database JSP(TagLib) (forward) ——Action ——EventResponse——

Turbine:

主要应用方面:WEB层。

主要应用技术:servlet等

出处:http://jakarta.apache.org/turbine/index.html

简述:这是APACHE的开源项目。基于SERVLET。据说速度比较快,基于service(pluggable implementation可插拔的执行组件)的方式提供各种服务。

COCOON:

主要应用方面:WEB层。

主要应用技术:XML,XSP,servlet等

出处:http://cocoon.apache.org/2.0/

简述:这是APACHE的一个开源项目。基于XML,基于XSP(通俗地说,XSP是在XML静态文档中加入Java程序段后形成的动态XML文档。)。特点是可以与多种数据源交互,包括文件系统,数据库,LDAP,XML资源库,网络数据源等。

ECHO:

主要应用方面:WEB层。

主要应用技术:servlet  

出处:http://www.nextapp.com/products/echo/

简述:nextapp公司的一个开源项目。基于SERVLET。页面可以做的很漂亮,结合echopoint,可以作出很多图形效果(里面用了jfreechart包)。使用SWING的思想来作网页,把HTML当作JAVA的类来做。但是大量使用Session,页面分帧(Frame)很多,系统资源消耗很大。

JATO:

全称:SUN ONE Application Framework

主要应用方面:WEB层。

主要应用技术:JSP,TagLib,JavaBean等

出处:http://www.sun.com/

简述:这是SUN推出的一个商业性框架,一看名字就知道是结合SUN ONE的平台推出的。我下载了JATO2.0看了一下,感觉有些简单,使用了JSP+TagLib+JavaBean。如他的DOC所说JATO是适合用在小的WEB应用里。

TCF:

全称:Thin-Client Framework

主要应用方面:JAVA GUI。

主要应用技术:JAVA application等

出处:http://www.alphaworks.ibm.com/tech/tcf

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/bianchengyuyan/)
展开更多 50%)
分享

猜你喜欢

java基础 java中模式和框架的介绍和区别

编程语言 网络编程
java基础 java中模式和框架的介绍和区别

Java编程基础中模式和框架的介绍和区别

编程语言 网络编程
Java编程基础中模式和框架的介绍和区别

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

Java基础 JavaScript和Java的区别详细说明

编程语言 网络编程
Java基础 JavaScript和Java的区别详细说明

Java基础知识 Java中抽象类和接口的区别

编程语言 网络编程
Java基础知识 Java中抽象类和接口的区别

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

Java线程中sleep和wait的区别详细介绍

编程语言 网络编程
Java线程中sleep和wait的区别详细介绍

JavaScript和Java的区别

Web开发
JavaScript和Java的区别

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

程序员生活 J2EE学习者值得研究的开源项目

程序员生活 J2EE学习者值得研究的开源项目

如何去除Linux文件的^M字符

如何去除Linux文件的^M字符
下拉加载更多内容 ↓