zoukankan      html  css  js  c++  java
  • 静态代理

    静态代理

    静态代理模式:

    真实对象和代理对象都要实现同一个接口
    代理对象要代理真实角色,代理对象要有参数。
    代理对象可以做真实对象做不了的事情,真实对象专注自己的事情

    package com.wang.thread;

    public class StaticProxyDemo01 {
       public static void main(String[] args) {

           new Thread(new Runnable() {//Thread类相当于WeddingCompany代理中间真实对象(Runnable接口)
               @Override
               public void run() {
                   System.out.println("i love you");
              }}).start();

           new WeddingCompany(new You()).marry();//下面两行代码的简写
           
           
          //首先需要有个代理
           WeddingCompany weddingCompany=new WeddingCompany(new You());
           //调用方法
           weddingCompany.marry();
      }
    }
    interface Marry{
       public void marry();
    }
    //真实角色
    class You implements Marry{

       @Override
       public void marry() {
           System.out.println("要结婚啦");
      }
    }
    //代理角色
    class WeddingCompany implements Marry{
       //真实目标角色
       private Marry target;
       public WeddingCompany(Marry target){
           this.target=target;
      }

       @Override
       public void marry() {
           before();
           //目标对象结婚
           this.target.marry();
           after();
      }
       private void before(){
           System.out.println("结婚之前布置现场");
      }
       private void after(){
           System.out.println("结婚之后,收尾款");
      }

    }

     

  • 相关阅读:
    Windows10 Docker 安装 dotnet core sdk 超时
    解决 jQuery-datepicker无法弹出日期的问题
    SQL2008 'OFFSET' 附近有语法错误。 在 FETCH 语句中选项 NEXT 的用法无效。
    “entities.LastOrDefault()”引发了类型“System.NotSupportedException”的异常
    快速开发平台
    快速设计ComboBox下拉框
    流程设计-流程模式
    流程设计-流程工具
    快速开发一款APP
    SDP开发
  • 原文地址:https://www.cnblogs.com/wyj96/p/11979704.html
Copyright © 2011-2022 走看看