【胡思乱想】命令模式 与 Thread Runnable
2018-10-28 02:22
281 查看
实现线程任务有两种方式,一种是创建Runnable/Callable对象,传递给Thread。另一种是子类重写Thread的run方法。
我觉得前一种像极了命令模式,或者说应该是命令模式的一个使用案例。
相似如下:
(1)Runnable 接口,只定义一个"()V"(表示无参,返回值为void)的方法run。创建Runnable对象的方式也有很多,这里就提一种,那就是定义一个类A实现Runnable接口。这个类A一般还有其他引用其他对象,然后在run方法里对其进行调用,来完成任务。
对应命令模式,Command接口,也只有一个()V方法,execute。Command的实现类,存有Receiver,然后在execute方法里对Receiver进行操作。
(2)Thread对象,通过构造方法把Runnable传入,启动线程后,OS线程将回调Thread.run方法,在这种情况下(即没有覆盖Thread.run),其将调用target.run(),执行Runnable对象。
对应命令模式,Invoker,通过setCommand方法传入命令对象,然后在其某个方法中调用命令对象的execute方法。
相关文章推荐
- Java中的命令模式——Thread,ThreadPoolExecutor和Runnable
- 命令模式下的异步消息处理(Handler,Message,Looper,Thread)
- 设计模式:JDK静态代理之Thread/Runnable
- java的观察者模式(有点监听器的感觉),Thread和Runnable的区别
- 安装oralce后在cmd模式下运行java命令出错:Exception in thread "main" java.lang.UnsupportedClassVersionError: org/getopt/luke/Luke (Unsupported
- 设计模式:JDK静态代理之Thread/Runnable
- 线程创建:继承Thread、接口Runnable(静态代理模式)、接口CallableJAVA169-173
- 命令模式下的异步消息处理(Handler,Message,Looper,Thread)
- java线程基础巩固---策略模式在Thread和Runnable中的应用分析
- 【胡思乱想】命令模式中,命令对象如何解耦Invoker和Receiver
- Android 开发中的 Handler ,Thread ,Message ,Runnable 的综合使用方法
- 设计模式之命令模式
- 使用命令模式编写Java程序的步骤
- 命令模式-适配器模式-外观模式-模板方法模式-迭代器模式-组合模式-状态模式-代理模式
- 无线网卡用作AP模式命令
- 大话设计模式--命令模式 Command -- C++实现实例
- java多线程编程中实现Runnable接口方法相对于继承Thread方法的优势
- 请求发送者与接收者解耦——命令模式(二)
- Head First 设计模式 (六) 命令模式(Command pattern) C++实现
- “设计模式”学习之六:职责链与命令模式(行为型)