一、背景
在通过Runnable接口创建线程时,如果需要启动则需要借助Thread类,这里就涉及到了静态代理模式。
二、实例
以歌手演出为例,在演出的这个过程中,歌手与他的助理他们有一个共同的目标"完成这场演出"。
为啥需要歌手需要有助理呢?
因为举办好一场演出有很多繁琐的事情要做,为了让歌手专心完成"唱歌"这件事,助理就需要在背后帮助歌手做很多事情。
1.助理负责帮助歌手做一些辅助工作,例如帮忙宣传、帮忙计划行程、帮忙订机票等等。
2.歌手负责唱歌这件事情。
三、实例的代码体现
1.公共的接口show
歌手与助理为了完成演出,都需要为这场演出做一些事情。
2.歌手类Singer实现Show接口
歌手要做的事情主要就是唱歌
3.助理类AssistantManager实现Show接口
助理要帮助歌手做一些辅助的工作
这样写助理和歌手好像并没有联系起来,我们只知道助理和歌手都为了同一场演出做了一些事情。
那这个助理究竟是服务哪一位歌手呢?
A.我们为助理类设置了一个成员变量"歌手"
B.为助理类创建了相应的构造方法
(经过以上两步,助理类在创建时就自带了一个相应的"歌手")
C.在演出所做的事情中,让助理对应的歌手完成"唱歌"这件事。
经过上述操作,在创建助理类对象时设置了相应的对象,然后借助助理类对象,就可以完成"演出"这整个过程。
运行代码:
四、总结
原文:https://www.cnblogs.com/yang37/p/12683021.html