• 静态代理模式代码演示


    一、静态代理:增强行为
    1、真实角色
    2、代理角色+真实角色的引用
    3、代理行为
    要求实现相同的接口

    1、接口,租赁行为

     1 package com.wisezone.dailies;
     2 
     3 /**
     4  * 接口,租赁行为
     5  * @author 王东海
     6  * @2017年4月16日
     7  */
     8 public interface Rent
     9 {
    10     /**
    11      * 租赁
    12      * void
    13      */
    14     public void rent();
    15 }

    2、真实角色类

     1 package com.wisezone.dailies;
     2 
     3 /**
     4  * 真实角色类
     5  * @author 王东海
     6  * @2017年4月16日
     7  */
     8 public class You implements Rent
     9 {
    10 
    11     @Override
    12     public void rent()
    13     {
    14         System.out.println("收取房租,过过包租婆的日子");
    15     }
    16 
    17 }

    3、代理角色类

     1 package com.wisezone.dailies;
     2 
     3 /**
     4  * 代理角色类
     5  * 要有增强行为
     6  * 并且具有真实角色
     7  * @author 王东海
     8  * @2017年4月16日
     9  */
    10 public class Proxy implements Rent
    11 {
    12 
    13     private You you;
    14     
    15     
    16     public Proxy(You you)
    17     {
    18         this.you = you;
    19     }
    20 
    21     //1.前期增强
    22     public void before(){
    23         System.out.println("寻找租房客户...");
    24         
    25     }
    26     
    27     //2.后期行为
    28     public void after(){
    29         System.out.println("收取中介费....");
    30         
    31     }
    32 
    33     @Override
    34     public void rent()
    35     {
    36         before();
    37         you.rent();//真实角色的行为
    38         after();
    39     }
    40 
    41 }

    4、测试结果

     1 package com.wisezone.dailies;
     2 
     3 public class TestProxy
     4 {
     5     public static void main(String[] args)
     6     {
     7         You you = new You();
     8         Proxy proxy = new Proxy(you);
     9         proxy.rent();
    10     }
    11 }

    打印:

    寻找租房客户...
    收取房租,过过包租婆的日子
    收取中介费....

  • 相关阅读:
    在IE浏览器中url传参长度问题
    Linq语句的认识
    关于选择表达式以及判断语句的书写,可以让代码更加的清晰。
    C#/对线程的认识
    Js/如何修改easyui修饰的input的val值
    Java Lambda表达式中的this
    MySQL USING关键词/USING()函数的使用
    复杂SQL查询
    Java 修饰符
    Git:idea中将当前分支修改的内容提交到其他分支上
  • 原文地址:https://www.cnblogs.com/wdh1995/p/6719386.html
Copyright © 2020-2023  润新知