引言:
继前一章(面向方法编程AOP学习之一 —— 新知新觉
)的对AOP的了解。
现有着进一步的体验AOP的实现方式,本节以简单的小例子,来感受AOP的一种体现。
场景
制造
:
场景一
有位表演者平时都是在路边上卖艺的,突然他的表演能力被某一老板看上,把他带到一个剧院里,告诉他他只要照原来在路上表演的一样就可以,其他的事情不用管,待表演结束的时候,老板会给他一定的酬劳的。
这老板想利用这个表演者的表演来赚一笔钱。
就这样,一天的工作开始了。表演即将开始。
角色:
表演者:Player
老板:Boss
剧院:ProxyTheatre
作用:
表演者(Player):
/**
* 表演者,只会表演,不会赚钱
*/
public class Player implements IPlayer {
@Override
public 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;
}
}
演出开始
:
@Test
public void testChat1() {
ProxyTheatre proxy = new ProxyTheatre();
proxy.setAudience(new Boss());
proxy.setPlayer(new Player());
proxy.perform();
}
演出过程演示
:
shell many tickets
player is singing
give a little money to player.
类图:
总结:
当然,这是一种简单的实现方式,从侧面反应出了AOP的一种思想,从告诉我们,在Player执行play()之前或之后,去处理相应的一些动作,而不需要Player的play()方法中,去修改其中的实现代码。
但里面也暴露出了一定的问题,难道我为了每一个方法进行处理,都需要另上一个代理执行类(剧院)来处理吗?这远远达不到我们想要的要求。在接下来的学习中,相信有更多的惊喜的实现方式。
下一节:
面向方法编程AOP学习之三 —— “进化论”
- 大小: 40.7 KB
分享到:
相关推荐
AOP 面向服务 面向方面编程 AOP 面向服务 面向方面编程 AOP 面向服务 面向方面编程 AOP 面向服务 面向方面编程
Spring AOP面向方面编程原理Spring AOP面向方面编程原理Spring AOP面向方面编程原理Spring AOP面向方面编程原理Spring AOP面向方面编程原理Spring AOP面向方面编程原理Spring AOP面向方面编程原理
Spring,面向切面编程AOP例子!AOP(Aspect Oriented Programming)!
AOP是OOP的延续,是(Aspect Oriented Programming)的缩写,意思是面向切面编程。 OO注重的是我们解决问题的方法(封装成Method),而AOP注重的是许多解决问题的方法中的共同点,是对OO思想的一种补充! 主要的功能是:...
关于Spring框架的aop简介
Spring AOP面向方面编程原理:AOP概念,主要介绍面向对象的概念及原理,及作者的一些理解。
aop,面向切面编程
Spring-aop面向切面编程实例 日志系统,权限控制等.
NULL 博文链接:https://lihaiming.iteye.com/blog/2273380
本教程介绍 AOP 及其基本概念。AOP 及其相关的工具使您可以将基本横切关注点(如日志记录和安全)的代码,与程序的核心应用逻辑相分离。AOP 通过使代码更具有可读性、更不容易出错以及更容易设计和维护,改善了代码...
AOP 面向方面编程 技术总结 AOP 面向方面编程 技术总结
面向横截面编程面向横截面编程面向横截面编程面向横截面编程面向横截面编程
AOP面向切面编程.ppt
一直对AOP面向切面编程的理解很模糊的同学可以看看。
AOP面向切面编程实例,可当作业提交。.net代码亲测,完全正确运行。
NULL 博文链接:https://garrincha.iteye.com/blog/2111779
aop 面向切面编程 demo,通过一个小案例来讲解,aop在andriod开发中运用
Spring4AOP 面向切面编程实例之方法拦截实例 一下利用Spring4的最后一个版本Spring4.3.9,实现简单的方法拦截实例。 Eclipse 建立java工程,导入必要的jar包,工程目录如下: