zoukankan      html  css  js  c++  java
  • 多线程中的静态代理模式

    静态代理的例子:

     1 /**
     2  * 1.真实角色
     3  * 2.代理角色
     4  * 3.共同实现的接口
     5  * @author tele
     6  *
     7  */
     8 public class StaticProxy {
     9         public static void main(String[] args) {
    10             //创建真实角色,可使用接口
    11             Marry you = new You();
    12             //创建代理角色,代理角色往往要添加新的方法,不建议使用接口创建
    13             WeddingCompany company = new WeddingCompany(you);
    14             
    15             company.marry();
    16             
    17         }
    18 }
    19 
    20 //接口
    21 interface Marry{
    22     void marry();
    23 }
    24 
    25 //真实角色
    26 class You implements Marry{
    27     @Override
    28     public void marry() {
    29         System.out.println("我结婚了");
    30     }
    31 }
    32 
    33 //代理角色,需要持有真实角色的引用
    34 class WeddingCompany implements Marry{
    35     private Marry you;
    36     
    37     public WeddingCompany() {
    38         super();
    39         // TODO Auto-generated constructor stub
    40     }
    41 
    42     public WeddingCompany(Marry you) {
    43         super();
    44         this.you = you;
    45     }
    46 
    47     @Override
    48     public void marry() {
    49         you.marry();
    50     }
    51     
    52 }

    从上面的例子可以看到,实现静态代理模式时有三个要素

    1.真实角色(委托对象)

    2.代理角色

    3.共同实现的接口

    对比以实现Runnable接口的形式创建多线程,可以发现,代理角色Thread类不需要我们创建,我们只需要写委托对象

    实现Runnable接口.把委托对象的引用传递给Thread,借助Thread对象来开启线程即可

  • 相关阅读:
    idea添加类注释和方法注释
    蓝桥杯ALGO-1,区间k大数查询
    personalblog
    ul+li水平居中的几种方法
    前端ps部分
    帝国cms-tab
    帝国cms判断某一字段是否为空
    帝国cms建站总结-(分页)
    Js获取验证码倒计时
    前端截取字符串:JS截取字符串之substring、substr和slice详解
  • 原文地址:https://www.cnblogs.com/tele-share/p/9464295.html
Copyright © 2011-2022 走看看