首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

面临方法编程AOP学习之二 —— “原始时代”

2012-09-05 
面向方法编程AOP学习之二 —— “原始时代”引言:?????? 继前一章(面向方法编程AOP学习之一 —— 新知新觉)的对A

面向方法编程AOP学习之二 —— “原始时代”

引言:

?????? 继前一章(面向方法编程AOP学习之一 —— 新知新觉)的对AOP的了解。

?????? 现有着进一步的体验AOP的实现方式,本节以简单的小例子,来感受AOP的一种体现。

?

场景制造

场景一

???? 有位表演者平时都是在路边上卖艺的,突然他的表演能力被某一老板看上,把他带到一个剧院里,告诉他他只要照原来在路上表演的一样就可以,其他的事情不用管,待表演结束的时候,老板会给他一定的酬劳的。

???? 这老板想利用这个表演者的表演来赚一笔钱。

???? 就这样,一天的工作开始了。表演即将开始。

?

角色:

?

表演者:Player老板:Boss剧院:ProxyTheatre?

?

作用:

表演者(Player):

/** * 表演者,只会表演,不会赚钱 */public class Player implements IPlayer {@Overridepublic void play() {System.out.println("player is singing");}}
?

老板(Boss):

package chat1;/** * 很会赚钱的老板 */public class Boss {/** * 卖票 */public void shellTickit() {System.out.println("shell many tickets ");}/** * 给酬劳 */public void givePlayerMoney() {System.out.println("give a little money to player.");}/** * 逃跑 */public void runAway() {System.out.println("The play is broken , the boss run away in a hurry");}}
?

?

剧院(ProxyTheatre):

package chat1;/** * 表演的地儿 */public class ProxyTheatre {private Boss boss;private Player player;/** * 演出开始 */public void perform() {boss.shellTickit();try {player.play();} catch (Exception e) {boss.runAway();}boss.givePlayerMoney();}public void setAudience(Boss audience) {this.boss = audience;}public void setPlayer(Player player) {this.player = player;}}
?

演出开始

@Testpublic void testChat1() {ProxyTheatre proxy = new ProxyTheatre();proxy.setAudience(new Boss());proxy.setPlayer(new Player());proxy.perform();}

?

演出过程演示

?

shell many tickets player is singinggive a little money to player.
?

类图:

? ? ? ? ? ? ? ? ? ? ? ?? ?? 面临方法编程AOP学习之二 —— “原始时代”

?

?

总结:

?????? 当然,这是一种简单的实现方式,从侧面反应出了AOP的一种思想,从告诉我们,在Player执行play()之前或之后,去处理相应的一些动作,而不需要Player的play()方法中,去修改其中的实现代码。

?????? 但里面也暴露出了一定的问题,难道我为了每一个方法进行处理,都需要另上一个代理执行类(剧院)来处理吗?这远远达不到我们想要的要求。在接下来的学习中,相信有更多的惊喜的实现方式。

?

下一节:

?????? 面向方法编程AOP学习之三 —— “进化论”

热点排行