zoukankan      html  css  js  c++  java
  • 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("收拾残局!!!");
      }
    }

     

    It's a lonely road!!!
  • 相关阅读:
    【转】hadoop中map和reduce的数量设置问题
    【转】MapReduce原理与设计思想
    eclipse中svn插件在线安装方式
    redis配置文件详解
    Hibernate_Validator学习
    WebService入门实例教程
    Http状态码大全(来自菜鸟教程)
    Java编程规则
    Java和C++的对比
    Java实现OOP(面向对象编程)
  • 原文地址:https://www.cnblogs.com/JunkingBoy/p/14842868.html
Copyright © 2011-2022 走看看