仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1982|回复: 20
打印 上一主题 下一主题

[学习教程] JAVA网站制作之AOP和Decorator进修心得

[复制链接]
小女巫 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:48:19 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
一旦你有了思想,那你编的程序就有了灵魂,不管是什么语言到了你的手里都会是你的工具而已,他们的价值是能尽快帮助你实现你想要的目标。但是如果你没有了思想,那就像是海里的帆船失去了船帆,是很难到打海的另一边的。心得比来这个段工夫都是忙于进修SpringFramework,那东东好样的,只是方才学完Struts,Hibernate,有来了这个,呵呵,,感到挺累的。“你怎样把这两个不干系的工具撤到一同?”,的确是如许!不管从他们的计划,完成,利用等方面他们是风马不接,但自己以为从了解的方面看他们有点相似。何况进修要从对照中学呀!这对初学者会有匡助于了解。主要声明:自己都是用本人的言语写的,有专业术语不合错误还请人人指出。:-就说计划形式Decorator,也就是粉饰形式,这还欠好了解?在原本的工具长进行粉饰一下即是粉饰了。既然是粉饰,你要有主体呀(被润色的工具),还要有粉饰品。可是不论你粉饰来粉饰往,他的实质是稳定的。就象人带上了面具,但他仍是人。墙上打上了油漆,但它仍是墙呀。你大概以为这是空话。但了解这点很主要(这是跟战略形式Strategy的区分),自己以为这个是了解好Decorator形式很主要的一点。在开辟中你常常要加强一个类的功效,大概是打消一个类的某些功效,可是一个类给浩瀚的功效举行粉饰了今后,大概本来的类已改头换面了,你常常会感应茫然,实在,你次要捉住他的主体,头脑内里时候要晓得你如今所作的事情就是为这个主体举行妆扮的事情。研讨过Jive的都晓得,内里的Filter就是用了Decorator计划形式,那末在这个计划内里,它的主体是甚么?ForumMessage,无疑是ForumMessage。粉饰品固然是Filter了,以是我们在作这件事变的时分一直是以ForumMessage为中心的,Filter举行粉饰的时分,你万万不要健忘你如今是为ForumMessage而事情!有关于jive研讨的文章,网上一年夜堆,如今看看一个对照复杂的Decorator://好比有一个笼统构件:publicinterfaceComponent{voidoperation();}//一个详细构件:publicclassConcreteComponentimplementsComponent{publicvoidoperation(){//Writeyourcodehere}}//一个笼统粉饰:publicclassDecoratorimplementsComponent{privateComponentcomponent;//援用…….….…//贸易办法,委派给构件publicvoidoperation(){component.operation();}}//一个详细粉饰:publicclassConcreteDecoratorextendsDecorator{/***贸易办法*/publicvoidoperation(){//一些详细的粉饰的代码......super.operation();//主体//一些详细的粉饰的代码.......}}......我们次要看看,在ConcreteDecorator中的operation()办法,他的父类是托付到component组建来完成的,实在它就是主体,一些粉饰代码城市在这个办法(主体)实行行进行“预处置”或是实行落后行“扫尾”。可不是,从下面很简单就看出了,笼统粉饰中的operation()办法没有在详细的粉饰类中举行“通盘”掩盖,由于他用了super.operation();如许的语句。可见粉饰形式中不论怎样,你都要找到相似这个的办法。申明他的主体还在。(这是跟战略形式Strategy的区分)说了这么多,不晓得人人有无感到到ConcreteDecorator类中的operation()办法跟SpringAOP中的InvocationHandler接口的invoke()办法有点相类是呢?我们来看看要完成InvocationHandler时分要重写的invoke()办法:publicObjectinvoke(Objectproxy,Methodmethod,Object[]args)throwsThrowable{…………………….result=method.invoke(originalObject,args);……………………………..returnresult;}InvocationHandler.invoke办法将在被代办署理类的办法被挪用之前触发。经由过程这个办法中,我们能够在被代办署理类办法挪用的前落后行一些处置,如下面代码中所示,InvocationHandler.invoke办法的参数中传送了以后被挪用的办法(Method),和被挪用办法的参数。同时,我们能够经由过程Method.invoke办法挪用被代办署理类的原始办法完成。如许,我们就能够在被代办署理类的办法挪用前后年夜做文章。(申明:援用了Spring开辟指南中的一段)在回到粉饰形式,其办法operation()在实行前和实行后,也能够对它年夜做文章。云云看来,SpringAOP和Decorator,从了解层面下去看,的确有点相象,注重:只是了解层面,而他们的完成完整两马事!实在次要是人人怎样对待这个成绩,依照自己的了解,SpringAOP也能够说是一种狭义的粉饰,但它又不是粉饰形式。它一样也是对某个办法加上了限定,好比insert()的时分,你要对它做实行前开启事件和实行后提交或回滚如许的“粉饰”。又好比你也能够对某团体操纵资本后做log如许的粉饰事情等等。他们的不异的地方就这么点。AOP也不是甚么新的工具,固然假如你的AOP是容器(Jboss4.0)完成的话,那末依照下面说的,你的一些办法就会被容器所“粉饰”。云云看来,更多的时分能够了解为SpringAOP和一些AOP容器是在体系级的,容器级的“粉饰”。而粉饰形式则是营业级的粉饰。这点实在从客户端也很简单了解。假如是AOP,程序员能够宁神的写你的代码(即便有点笨也不怕,有AOP护着呢)。由于体系将在体系运转时分对这段代码举行“粉饰”。也就是说,这些粉饰不会呈现在客户真个代码中,而Decorator形式呢?呵呵,这个时分程序员要有摇头脑了,他们要本人组装一些粉饰类,依照某一种机制对主体举行粉饰。也就是说,这些润色类要呈现在客户真个代码中。看代码就晓得了:--)InputStreamReaderinput=newInputStreamReader(System.in);BufferedReaderbr=newBufferedReader(input);....//主体是System.in
微软什么都提供了。你可以试想一下,如果你是新手,你是希望你点一下按钮程序就能运行那,还是想自己一点一点的组织结构,然后打包发部,调错再打包......
透明 该用户已被删除
沙发
发表于 2015-1-21 15:17:03 来自手机 | 只看该作者
任职于太阳微系统的詹姆斯·高斯林等人于1990年代初开发Java语言的雏形,最初被命名为Oak,目标设置在家用电器等小型系统的程序语言
灵魂腐蚀 该用户已被删除
板凳
发表于 2015-1-30 20:14:28 | 只看该作者
接着就是EJB了,EJB就是Enterprise JavaBean, 看名字好象它是Javabean,可是它和Javabean还是有区别的。它是一个体系结构,你可以搭建更安全、更稳定的企业应用。它的大量代码已由中间件(也就是我们常听到的 Weblogic,Websphere这些J2EE服务器)完成了,所以我们要做的程序代码量很少,大部分工作都在设计和配置中间件上。
乐观 该用户已被删除
地板
发表于 2015-1-31 15:51:03 | 只看该作者
是一种使用者不需花费很多时间学习的语言
再现理想 该用户已被删除
5#
发表于 2015-2-5 19:44:51 | 只看该作者
任职于太阳微系统的詹姆斯·高斯林等人于1990年代初开发Java语言的雏形,最初被命名为Oak,目标设置在家用电器等小型系统的程序语言
谁可相欹 该用户已被删除
6#
发表于 2015-2-7 05:43:15 | 只看该作者
Java是一个纯的面向对象的程序设计语言,它继承了 C++语言面向对象技术的核心。Java舍弃了C ++语言中容易引起错误的指针(以引用取代)、运算符重载(operator overloading)
再见西城 该用户已被删除
7#
发表于 2015-2-9 18:22:49 | 只看该作者
是一种由美国SUN计算机公司(Sun Microsystems, Inc.)所研究而成的语言
第二个灵魂 该用户已被删除
8#
发表于 2015-2-10 07:11:01 | 只看该作者
你就该学一学Servlet了。Servlet就是服务器端小程序,他负责生成发送给客户端的HTML文件。JSP在执行时,也是先转换成Servlet再运行的。虽说JSP理论上可以完全取代Servlet,这也是SUN推出JSP的本意,可是Servlet用来控制流程跳转还是挺方便的,也令程序更清晰。接下来你应该学习一下Javabean了,可能你早就看不管JSP在HTML中嵌Java代码的混乱方式了,这种方式跟ASP又有什么区别呢?
愤怒的大鸟 该用户已被删除
9#
发表于 2015-2-11 15:56:57 | 只看该作者
多重继承(以接口取代)等特性,增加了垃圾回收器功能用于回收不再被引用的对象所占据的内存空间,使得程序员不用再为内存管理而担忧。在 Java 1.5 版本中,Java 又引入了泛型编程(Generic Programming)、类型安全的枚举、不定长参数和自动装/拆箱等语言特性。
小女巫 该用户已被删除
10#
 楼主| 发表于 2015-3-2 15:44:10 | 只看该作者
应用在电视机、电话、闹钟、烤面包机等家用电器的控制和通信。由于这些智能化家电的市场需求没有预期的高,Sun公司放弃了该项计划。随着1990年代互联网的发展
只想知道 该用户已被删除
11#
发表于 2015-3-11 04:26:46 | 只看该作者
有时间再研究一下MVC结构(把Model-View-Control分离开的设计思想)
爱飞 该用户已被删除
12#
发表于 2015-3-13 23:09:44 | 只看该作者
Java是一个纯的面向对象的程序设计语言,它继承了 C++语言面向对象技术的核心。Java舍弃了C ++语言中容易引起错误的指针(以引用取代)、运算符重载(operator overloading)
13#
发表于 2015-3-17 23:09:23 | 只看该作者
有时间再研究一下MVC结构(把Model-View-Control分离开的设计思想)
金色的骷髅 该用户已被删除
14#
发表于 2015-3-20 12:41:12 | 只看该作者
Java自面世后就非常流行,发展迅速,对C++语言形成了有力冲击。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台
若相依 该用户已被删除
15#
发表于 2015-3-22 04:15:53 | 只看该作者
是一种使用者不需花费很多时间学习的语言
不帅 该用户已被删除
16#
发表于 2015-3-26 12:35:05 | 只看该作者
如果你学过HTML,那么事情要好办的多,如果没有,那你快去补一补HTML基础吧。其实JSP中的Java语法也不多,它更象一个脚本语言,有点象ASP。
老尸 该用户已被删除
17#
发表于 2015-4-21 06:20:31 | 只看该作者
一般学编程语言都是从C语开始学的,我也不例外,但还是可能不学过程语言而直接学面向对象语言的,你是刚接触语言,还是从C开始学比较好,基础会很深点,如果你直接学习JAVA也能上手,一般大家在学语言的时候都记一些语言的关键词,常有的包和接口等。再去做逻辑代码的编写,以后的学习过程都是从逻辑代码编写中提升的,所以这方面都是经验积累的。你要开始学习就从
精灵巫婆 该用户已被删除
18#
发表于 2015-4-25 07:30:19 | 只看该作者
Pet Store.(宠物店)是SUN公司为了演示其J2EE编程规范而推出的开放源码的程序,应该很具有权威性,想学J2EE和EJB的朋友不要 错过了。
简单生活 该用户已被删除
19#
发表于 2015-4-26 14:11:10 | 只看该作者
另外编写和运行Java程序需要JDK(包括JRE),在sun的官方网站上有下载,thinking in java第三版用的JDK版本是1.4,现在流行的版本1.5(sun称作J2SE 5.0,汗),不过听说Bruce的TIJ第四版国外已经出来了,是专门为J2SE 5.0而写的。
飘飘悠悠 该用户已被删除
20#
发表于 2015-5-3 03:06:11 | 只看该作者
Java语言支持Internet应用的开发,在基本的Java应用编程接口中有一个网络应用编程接口(java net),它提供了用于网络应用编程的类库,包括URL、URLConnection、Socket、ServerSocket等。Java的RMI(远程方法激活)机制也是开发分布式应用的重要手段。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-11-16 01:16

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表