在Java开源的王国中自由翱翔
2008-01-05 20:20:45 来源:WEB开发网在如今的java领域,各种新技术,新工具层出不穷,一方面,每一种技术都会不停的升级换代,另一方面,还会不断涌现出新的技术和工具。Java世界就像小时候玩的万花筒,尽管实质上只是由几个普通的玻璃碎片组成,但只要轻轻一摇,就会变化出千万种缤纷的图案。 Java世界如此变化多端,很轻易让初学Java的人有无从下手的感觉。经常会有读者问我这样的问题:
我学了Java已经一年多了,现在就只能用jsp写点东西,其它的东西实在太多了,我整天学都学不完,很迷惘,不知道该如何有针对性地去学,去找到一份Java工作,现在是困死在Java里了。
撰写本文,目的是为了帮助读者看清Java万花筒的本质,从复杂的表象中寻找普遍的规律,只有把握了普遍的规律,才能以不变应万变,轻轻松松的把握Java技术发展的新趋势,迅速的领略并且会熟练运用一门新的技术,而不成为被动的追随者,知其然而不知其所以然。在寻找普遍规律之前,让我们先看看Java的发展历程:
(1)SUN的主流技术的发展
GUI界面:Java AWT API--〉Java Swing API
JavaWeb: Servlet--〉JSP--〉JSF
持久化层:JDBC--〉CMP EJB或BMP EJB或JDO
分布式应用:Socket--〉RMI--〉J2EE或Java Web Service
(2)主要Java开源软件的种类
JavaWeb容器: Tomcat、Resin
EJB容器: JBoss
框架: Java Web框架(Struts)、业务逻辑层框架(SPRing)
持久化层: DAO、ORM映射工具(如Hibernate、OJB)
工程治理工具:ANT、Elipse
日志输出工具: Log4J
JavaWeb服务工具:Apache Axis
促成Java世界如此绚丽多姿的基本动力在于以下核心思想:
接口与实现
不同的软件系统之间通过接口来交互。软件系统只对外公开接口,封装实现细节。接口描述了软件系统具备的功能,也就是指定软件系统能够做什么,但是没有指明怎么去做。接口具有三大作用:
(1)对于接口制订者:SUN公司通过定义接口,来制定新的软件系统的规范,例如Servlet规范、EJB规范和JDO规范,这些规范主要以接口的形式描述了软件系统必须具备的功能。通过制定规范,SUN公司指引着Java技术的发展方向,同时给接口的实现者提供了自由发挥的广阔空间。
(2)对于接口实现者:接口实现者以特定的方式实现标准的规范。例如一些开放源代码软件,如Tomcat和Resin分别以不同的实现方式,实现了标准的Servlet规范。同一个接口答应有多种实现,使得Java领域保持着百花齐放、百家争鸣的良好势头。
(3)对于接口调用者:接口调用者的程序具有良好的可移植性。以JavaWeb应用为例,由于Tomcat和Resin遵守同样的规范,因此用户开发的JavaWeb应用能够顺利的从Tomcat容器移植到Resin容器中。
封装与抽象
封装指的是在一个大系统中包含一个小系统,大系统是建立在已有小系统的基础上的更为复杂、功能更强大的系统。例如,Hibernate对JDBC API进行了封装,在Hibernate内部依靠JDBC API来操纵数据库,但是Hibernate API比JDBC API具有更强大的功能,例如JDBC API只具有连接和操纵数据库的功能,而Hibernate不仅具备这一功能,还具有对象-关系映射的功能。
抽象是指从已经存在的具有相似功能、但不同接口的系统中抽取共性,提炼出统一的接口。例如,Hibernate Transaction API是对JDBC Transaction API和Java Transaction API(JTA)的抽象。
继续与扩展
继续与扩展是一对孪生兄弟,当两个类之间存在继续关系,那么必定也存在扩展关系。继续的优点在于提高代码的可重用性,子类会继续父类的所有public和protected类型的属性和方法,在子类的程序代码中,无需重复定义这些属性和方法。扩展的优点在于使软件应用具有可伸缩性,能够在已有功能的基础上扩展新的功能。
更多精彩
赞助商链接