发布一篇察看者形式的java完成
最后就是我对java的几点希望:首先是IDE工具,有人说java已经很好了,有jbuilder,eclipse,net网页编程Beans等等,但是我认为如果java想超越.net网页编程,那么他首先要解决的就是IDE工具的整合。Java事务模子
在我的前两篇先容C#事务和托付的blog宣布以后,人人呼应出格强烈热闹,点击率很高,看来事务/托付机制是良多同仁对照含混的中央,借此春风,加上比来本人转战java,因而决意写这篇先容java事务机制的blog。
实在,不论哪一种言语的事务机制,毫无破例都逃不出三点:事务源/发送者,事务的承受者/处置者/侦听者,和事务源向事务承受者传送的事务信息。对应在java中,事务源(eventsource),事务聆听者(eventlistener),事务动静称为eventobject。而在C#中,分离是发送者(Sender),处置者(handler),事务动静则是事务参数(EventArgument)。而java和c#都接纳不异的呼应形式:公布者/定阅者形式(publisher/subscriber),详细来讲就是:
(1)定阅者向公布者注册本人感乐趣的事务;
(2)事务产生时,关照定阅者呼应事务。
复杂一句话,就是那句常说的:“Dontcallme,Illcallyou。”
因为之前已对C#的事务机制举行了切磋,上面,我将侧重谈谈java的事务机制,和对二者完成机制的对照:
(一)Java事务完成机制
上面是一个自界说java事务的例子,经由过程这个复杂的演示,你能够看到Java的事务完成机制。这里申明一下,这个例子引自http://www.rainsts.net/article.asp?id=224,为了申明道理,改编了原文中对匿名办法部分,并且因为这个网站的代码编纂器缺少对java代码的撑持,因而,对关头字,范例等并没有作格局显现处置。
importjava.util.*;
//界说一个相似C#EventArgs的类用来传送事务形态信息。
//一样平常请求承继自java.util.EventObject,且以Event开头。
classClicktEventextendsEventObject
{
publicDemoBeansource;
//机关函数的参数传送发生事务的事务源
publicClickEvent(DemoBeansource)
{
super(source);
this.source=source;
}
}
//经由过程接口来界说事务呼应函数原型,就像c#delegate界说了呼应函数的“模板”,
//别忘了,接话柄际上就是一种“条约”,“左券”,经由过程这个接口中的函数署名到达对呼应函数的标准
//一样平常请求承继自java.util.EventListener,且以Listener开头。
//这里以I开首界说ClickListener接口,自创自.net,不切合j2ee的定名标准
interfaceIClickListenerextendsEventListener
{
voidclick(ClicktEvente);
}
//事务侦听者,完成侦听者接口
publicclassClickListenerimplementsIClickListener
{
public voidclick(ClicktEvente) {
System.out.println("theclickedeventhappened");
}
}
//界说演示控件类,也就是事务源
classDemoBean
{
//用一个java.util.Vector对象来存储一切的事务监听器对象。
privateVectorclicks=newVector();
//增加事务定阅。一样平常以add(listener)体例拼写,并增加synchronized关头字。
publicsynchronizedvoidaddExampleListener(IClickListenerlistener)
{
clicks.add(listener);
}
//移除事务定阅。一样平常以remove(listener)体例拼写,并增加synchronized关头字。
publicsynchronizedvoidremoveExampleListener(IClickListenerlistener)
{
clicks.remove(listener);
}
//触发事务。
protectedvoiddoClickEvent()
{
//锁定,制止在触发时代有事务被定阅或移除。
synchronized(this)
{
//创立事务形态对象。
ClicktEventce=newClickEvent(this);
//轮回触发一切的事务定阅办法。
for(inti=0;i<clicks.size();i++)
{
IClickListenere=(IClickListener)clicks.get(i);
e.click(ce);
}
}
}
//摹拟点击操纵。
publicvoidClick()
{
doClickEvent();
}
}
//测试程序
publicclassProgram
{
publicstaticvoidmain(String[]args)
{
//创立控件。
DemoBeanbean=newDemoBean();
//实例化一个事务侦听者
ClickListnertestListner=newClickListner();
//增加事务定阅。
bean.addExampleListener(testListner);
//摹拟触发点击操纵。
bean.Click();
}
}
<p>
最后我再次声明,我并没有说不看好java,实际上我对java很乐观的,毕竟她正在不断改进中,我相信她总有一天会和.net网页编程并驾齐驱的 如果要向java web方向发展也要吧看看《Java web从入门到精通》学完再到《Struts2.0入门到精通》这样你差不多就把代码给学完了。有兴趣可以看一些设计模块和框架的包等等。 是一种由美国SUN计算机公司(Sun Microsystems, Inc.)所研究而成的语言 不过,每次的执行编译后的字节码需要消耗一定的时间,这同时也在一定程度上降低了 Java 程序的运行效率。 你可以去承接一些项目做了,一开始可能有些困难,可是你有技术积累,又考虑周全,接下项目来可以迅速作完,相信大家以后都会来找你的,所以Money就哗啦啦的。。。。。。 吧,现在很流行的Structs就是它的一种实现方式,不过Structs用起来实在是很繁,我们只要学习其精髓即可,我们完全可以设计自己的MVC结构。然后你再研究一下软件Refactoring (重构)和极限XP编程,相信你又会上一个台阶。 做完这些,你不如整理一下你的Java代码,把那些经典的程序和常见的应用整理出来,再精心打造一番,提高其重用性和可扩展性。你再找几个志同道合的朋友成立一个工作室吧 是一种语言,用以产生「小应用程序(Applet(s)) 另外编写和运行Java程序需要JDK(包括JRE),在sun的官方网站上有下载,thinking in java第三版用的JDK版本是1.4,现在流行的版本1.5(sun称作J2SE 5.0,汗),不过听说Bruce的TIJ第四版国外已经出来了,是专门为J2SE 5.0而写的。 你现在最缺的是实际的工作经验,而不是书本上那些凭空想出来的程序。 J2SE开发桌面应用软件比起 VC,VB,DEPHI这些传统开发语言来说,优势好象并不明显。J2ME对于初学者来说,好象又有点深奥,而且一般开发者很难有开发环境。 是一种突破用户端机器环境和CPU 设计模式是高级程序员真正掌握面向对象核心思想的必修课。设计模式并不是一种具体"技术",它讲述的是思想,它不仅仅展示了接口或抽象类在实际案例中的灵活应用和智慧 一直感觉JAVA很大,很杂,找不到学习方向,前两天在网上找到了这篇文章,感觉不错,给没有方向的我指了一个方向,先不管对不对,做下来再说。
页:
[1]