AOP之代理模式与装饰着模式
来源:互联网 发布:蜂窝数据qq打不开 编辑:程序博客网 时间:2024/05/21 17:45
AOP的实现是代理模式,但是装饰者模式也可以实现主要是装饰者模式jdk里没有支持实现aop
装饰模式:增加程序的功能
代理模式:给一个对象提供一个代理对象,并有代理对象来控制对原有对象的引用;
AOP里面有几个关键词的解释:
1.关注点:我们进行关注公共功能
2.连接点:程序中需要增加功能的位置
3.advice:关注点的具体实现
4.方面:就是以上三点综合起来讲,在哪里增加什么功能并且具体怎么做
5.切入点:就是连接点的集合
6.目标对象就是那些:包含连接点的类
装饰者模式的例子:
package com.company;/** * Created by Dqd on 2017/4/16. */public abstract class Ope { public abstract void op();}public class D1 extends Ope{ public void op(){ System.out.println("砖墙"); }}public class D2 extends Ope { private Ope ope = null; public D2(Ope ope1){ ope = ope1; } @Override public void op() { //有个被装饰的对象 System.out.println("正面腻子"); ope.op(); System.out.println("反面腻子"); }}public class Test { public static void main(String[] args){ Ope ope = new D2(new D1()); ope.op(); }}
静态代理模式例子:
package proxy;/** * Created by Dqd on 2017/4/16. */public interface Api { void t();}package proxy;/** * Created by Dqd on 2017/4/16. */public class Target implements Api{ @Override public void t() { System.out.println("我的目标"); }}package proxy;/** * Created by Dqd on 2017/4/16. *//** * 1.装饰模式的目的就是为程序增加功能 * 2.代理模式是代理对象访问,一般情况不为程序增加功能,但是也可以增加 * 3.当然了(静态代理)代理模式,如果代理的对象又好多的方法,那么需要在代理类中写好多方法,但是动态代理不需要 * */public class Proxy implements Api{ //需要有代理对象 private Api api; public Proxy(Api api1){ api = api1; } @Override public void t() { //进行安全和日志的处理 /** * if(安全){ * 继续进行 * }else{ * 不能正常进行 * } */ System.out.println("代理ing-----安全检查"); if(true) { api.t(); }else{ } }}public class Test { public static void main(String[] args){ Api api = new Proxy(new Target()); api.t(); }}
0 0
- AOP之代理模式与装饰着模式
- Java模式之装饰者模式&代理模式 装饰模式与代理模式区别
- 设计模式之--装饰模式与代理模式的区别
- 动态代理与装饰模式
- 代理模式与装饰模式的异同
- 代理模式与装饰模式的区别
- 装饰模式与代理模式的区别
- 装饰模式与代理模式的区别
- 装饰模式与代理模式的区别
- 代理模式与装饰模式的区别
- 装饰者模式与代理模式
- 装饰模式与代理模式的区别
- 代理模式与装饰模式的异同
- 代理模式与装饰模式的异同
- 装饰模式与代理模式的区别
- 装饰模式与代理模式的区别
- 装饰模式与代理模式的区别
- 装饰模式与代理模式的区别
- redis 数据结构笔记
- 对事物的理解
- Linux学习之内核模块开发详解
- 软件项目规模评估
- 第一单元:微积分
- AOP之代理模式与装饰着模式
- 无监督学习(unsupervised learning) 5.生成模型
- 失眠有感
- [JS]前端下载的实现
- 小白学习作业-Day02
- 开通博客喽!
- Android异步线程之AsyncTask
- 《风之旅人》游戏设计思想一
- 【测试】