zoukankan      html  css  js  c++  java
  • 源码中的设计模式-静态代理模式

    这种模式可以实现,被代理类将前期准备和后期善后的工作交给代理类实现,而核心业务由被代理类执行。其实我们经常遇到或者使用这种设计模式,常见到意识不到它用到了设计模式。

    我们在使用线程的时候,经常会定义自己的线程类MyThread实现Runnable接口,在run方法中实现自己要执行的关键业务。伪代码如下:

    public class ThreadTest{
        public static void main(String[] args) {
            Thread thread = new Thread(new MyRunnable());//静态代理模式  Thread类也实现了Runnable接口
            thread.start(); 
        }
        
    }
    
    class MyRunnable implements Runnable {
    
        @Override
        public void run() {
    // 业务代码 System.out.println("子线程ID:" + Thread.currentThread().getId()); } }  

    其中Thread类也实现了Runnable接口

    public
    class Thread implements Runnable {
    ...
    private Runnable target;
    ...
    public Thread(Runnable target) {
        init(null, target, "Thread-" + nextThreadNum(), 0);
    }
    ...
    @Override public void run() { 
    if (target != null) 
    { target.run(); } 
        } ... 
    }
    

      

      可以看到静态代理设计模式涉及到,代理类、被代理类、公共接口三个关键元素。代理类和被代理类都要实现公共接口,同时代理类中须要有一个被代理类的依赖target,这样才能把核心业务逻辑交还给被代理类,而代理类只需要实现其他与核心业务逻辑无关的内容。

    收住自己的心 一步一个脚印 做好自己的事
  • 相关阅读:
    1144 The Missing Number (20分)
    1145 Hashing
    1146 Topological Order (25分)
    1147 Heaps (30分)
    1148 Werewolf
    1149 Dangerous Goods Packaging (25分)
    TypeReference
    Supervisor安装与配置()二
    谷粒商城ES调用(十九)
    Found interface org.elasticsearch.common.bytes.BytesReference, but class was expected
  • 原文地址:https://www.cnblogs.com/GodMode/p/14001294.html
Copyright © 2011-2022 走看看