6.2Java静态代理设计模式

2021/6/2 22:25:36

本文主要是介绍6.2Java静态代理设计模式,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

6.2Java静态代理设计模式

引用图片说明

静态代理和动态代理的区别

静态代理

特点:

  • 已经写好了的类,直接拿来用

动态代理

特点:

  • 在运行过程中动态构建的

  • 临时构建的

静态代理的作用
  • 记录日志

  • 监控资源占用空间

实例
package iostudy.thread;
​
/**
 * 静态代理
 * 1、真实角色
 * 2、代理角色
 * 实现代理的条件:
 * 两个角色实现相同的接口(公共接口)才能代理行为
 * 执行方法:
 * 实例化实现类对象,调用方法--->在这个例子当中通过构造器传入真实对象
 * 相当于实现类是代理类,真实的对象才是实现类对象
 * @since JDk 1.8
 * @date 2021/6/2
 * @author Lucifer
 */
public class StaticProxy {
    public static void main(String[] args) {
        new WeddingCompany(new You()).happyMarry();
​
        //类似于:
        //new Thread(线程实例化对象).start();
    }
}
​
/**
 * 定义一个结婚接口
 */
interface Marry{
​
    /*定义接口里面的方法*/
    void happyMarry();
​
}
​
/**
 * 写一个真实角色类
 */
class You implements Marry{
​
    /*重写接口当中的方法*/
    @Override
    public void happyMarry(){
        System.out.println("Marry Successfully!!!");
    }
​
}
​
/**
 * 建立一个代理角色
 */
class WeddingCompany implements Marry{
    /*
    代理人的意思是:
    1、代理人本身不做行为
    2、代理真实角色做行为
    */
​
    //代理人必须有一个目标对象--->真实角色
    private Marry target;
    /*在构造器中加入真实角色*/
    public WeddingCompany(Marry target){
        this.target = target;
    }
​
     /*重写接口当中的方法*/
    @Override
    public void happyMarry(){
​
        /*代理人做准备工作*/
        ready();
​
        //最终是真实角色执行happy方法
        this.target.happyMarry();
​
        /*代理人善后*/
        after();
​
    }
​
    /*定义代理类要执行的私人方法*/
    /**
     * ready方法
     */
    public void ready(){
        System.out.println("布置桌子!!!");
    }
​
    /**
     * after方法
     */
    public void after(){
        System.out.println("收拾残局!!!");
    }
}

 



这篇关于6.2Java静态代理设计模式的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程