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

    我也是小白,各位倘若看到一定要带着思考去看。

    一、背景

    在通过Runnable接口创建线程时,启动线程需要借助Thread类,这里就涉及到了静态代理模式。

    二、实例

    以歌手演出为例,在演出的这个过程中,歌手与他的助理他们有一个共同的目标"完成这场演出"。

    为啥需要歌手需要有助理呢?

    因为举办好一场演出有很多繁琐的事情要做,为了让歌手专心完成"唱歌"这件事,助理就需要在背后帮助歌手做很多事情。

    1.助理负责帮助歌手做一些辅助工作,例如帮忙宣传、帮忙计划行程、帮忙订机票等等。

    2.歌手负责唱歌这件事情。

    三、实例的代码体现

    1.公共的接口show

    歌手与助理为了完成演出,都需要为这场演出做一些事情。

    2.歌手类Singer实现Show接口

    歌手要做的事情主要就是唱歌

    3.助理类AssistantManager实现Show接口

    助理要帮助歌手做一些辅助的工作

     这样写助理和歌手好像并没有联系起来,我们只知道助理和歌手都为了同一场演出做了一些事情。

     那这个助理究竟是服务哪一位歌手呢?

    A.我们为助理类设置了一个成员变量"歌手"

    B.为助理类创建了相应的构造方法

    (经过以上两步,助理类在创建时就自带了一个相应的"歌手")

    C.在演出所做的事情中,让助理对应的歌手完成"唱歌"这件事。

    在创建助理类对象时设置相应的对象,借助助理类对象,就可以完成"演出"这整个过程。

     

     运行代码:

    四、总结

    1.Java中的Thread类实现了Runable接口

    即Thread类相当于上文中的"助理"

     2.我们写的类也是实现了Runnable接口

    即我们写的类相当于上文中的"歌手"

     

     3.在实现了Runnable接口后通过代理类Thread对象完成线程的启动

    A.在代理类Thread对象的创建中,声明了我们所写的实际对象,eg:"myRunnable"。

    B.然后由Thread类协助我们完成这一系列的操作。

    C.看似简单的start()背后,代理类Thread还帮助我们做了很多事。

  • 相关阅读:
    第二阶段冲刺报告(三)
    第二阶段冲刺报告(二)
    第二阶段冲刺报告(一)
    课程改进意见
    用户体验
    返回一个二维整数数组中最大联通子数组的和
    《你的灯亮着吗》阅读笔记三 ——谁的问题
    《你的灯亮着吗》阅读笔记二 ——什么是真正的问题
    《你的灯亮着吗》阅读笔记一 —— 问题是什么?
    我爱淘冲刺阶段站立会议2每天任务6
  • 原文地址:https://www.cnblogs.com/yang37/p/12683021.html
Copyright © 2011-2022 走看看