首页 > 编程语言 >Java静态代理设计模式模式(多线程Runnable)

Java静态代理设计模式模式(多线程Runnable)

时间:2022-11-11 21:57:25浏览次数:48  
标签:设计模式 Java void 代理 接口 someBody 多线程 public goBattle

静态代理设计模式,就是代理对象来帮你忙前忙后,你负责出席一下就好了。

需要:

1.实现相同的接口

2.真实角色

3.代理角色,里面有一个成员是接口对象(实际上是真实角色----接口实现类的对象)

4.代理角色调用共同的方法。

看例子:

/**
 * 静态代理
 * 需要实现相同的接口
 * 1.真实角色
 * 2.代理角色,里面存放接口对象(实际是接口的实现类对象)
 */
public class StaticProxy {
    public static void main(String[] args) {
        new Me(new Zhangsan()).goBattle();
    }
}
//统一的接口:去打架
interface Battle{
    void goBattle();
}
//真实对象:去打架的人
class Zhangsan implements Battle{
    @Override
    public void goBattle() {
        System.out.println("张三:爷们要战斗!");
    }
}
//代理对象,为真实角色忙前忙后:武器提供者
class Me implements Battle{
    Battle someBody;
    public Me(Battle someBody){
        this.someBody=someBody;
    }
    @Override
    public void goBattle() {
        giveSome();
        someBody.goBattle();//灵魂在此
        returnSome();
    }
    //忙前
    void giveSome(){
        System.out.println("拿到一把武器!");
    }
    //忙后
    void returnSome(){
        System.out.println("打完了武器还掉。");
    }
}

总所周知:

1.Thread实现了Runnable接口

2.我在自己做个类Mythread也实现了Runnable接口,那肯定得重写它唯一的run方法啊。

3.Thread里面有Runnable接口的对象:

4.Thread(通过start)调用run方法。

 

所以说,最经典的代理设计模式就是多线程的开启模式:

开启一个线程:new Thread(new Mythread()).start();

 

标签:设计模式,Java,void,代理,接口,someBody,多线程,public,goBattle
From: https://www.cnblogs.com/lurenjia-bky/p/16882129.html

相关文章

  • 设计模式学习(十三):观察者模式
    设计模式学习(十三):观察者模式作者:Grey原文地址:博客园:设计模式学习(十三):观察者模式CSDN:设计模式学习(十三):观察者模式观察者模式观察者模式是一种行为型模式。在对象之间......
  • 【JS】874- 为何在 JavaScript 中使用顶层 await?
    原文地址:WhyShouldYouUseTop-levelAwaitinJavaScript?[1]原文作者:MahdhiRezvi[2]译者:Chor作为一门非常灵活和强大的语言,JavaScript对现代web产生了深远的影响。......
  • CentOS中卸载安装JAVA
    一、卸载CentOS中原有JAVA1、查看原有JDKrpm-qa|grepjava2、卸载JDKsudoyum-yremovejava-1.6.0-openjdk-1.6.0.41-1.13.13.1.el6_8.x86_64sudoyum-yrem......
  • 【JS】1012- 52个JavaScript常用工具函数整理
    1、isStatic:检测数据是不是除了symbol外的原始数据。functionisStatic(value){return(typeofvalue==='string'||typeofvalue==='number'|......
  • 【框架】984- 2021 年最佳 JavaScript 框架
    作者|OliviaCuthbert译者|Sambodhi策划|刘燕据Stackoverflow的2021年开发者调查,JavaScript已连续第八年成为使用最多的语言,有67.7%的受访者选择它。之所以如......
  • java中的复合赋值运算符
    本文主要阐明复合赋值运算符即i=i+1.2==>i+=1.2; inti=1;i+=1.2;System.out.println(i);//i==2注意:复合赋值运算符会进行类型转换,具体操作顺序如......
  • Java安全之动态加载字节码
    Java字节码简单说,Java字节码就是.class后缀的文件,里面存放Java虚拟机执行的指令。由于Java是一门跨平台的编译型语言,所以可以适用于不同平台,不同CPU的计算机,开发者只需......
  • JavaScript高级
    一、JavaScript基础总结01、数据类型相关知识点Ⅰ-基本(值)类型String:任意字符串Number:任意的数字boolean:true/falseundefined:undefinednull:null-->使......
  • java开发中的层结构
    vo视图层对象作用是给视图层的页面的数据封装起来po持久层对象作用是跟持久层的数据库做一一对应的关系一张表一个po类每张表的字段就属于每个po类的属性dto数据......
  • JavaScript for循环的终止问题
    js的for循环,return,break,continue的使用方式和解释letfuncFor=()=>{for(leti=0;i<4;i++){if(i==2){//return/......