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("结婚之后,收尾款");
      }

    }

     

  • 相关阅读:
    网络协议-网络编程学习方法介绍
    socket函数集-----网络编程必备值得拥有
    QT 等待对话框/进度--
    qt部分类释义
    Unicode 10.0版本出现了,可以表达13万个字符, 99年定制的3.0版本不超过6万个字符
    hadoop+spark+mongodb+mysql+c#
    mysql 主从复制
    Docker for Windows
    项目设计&重构&性能优化
    发布项目到 Linux 上运行 Core 项目
  • 原文地址:https://www.cnblogs.com/wyj96/p/11979704.html
Copyright © 2011-2022 走看看