zoukankan      html  css  js  c++  java
  • 代理模式

    代理模式

    静态代理

    • 当服务对象和代理对象实现了统一接口

    • 那么服务对象就可以利用代理对象实现自己无法实现的功能

      class StaticAgent {
          public static void main(String[] args) {
              new WeddingCompany(new Person()).happyMarry();
          }
      }
      
      
      // 这里我们定义一个结婚的接口
      interface Marry{
          void happyMarry();
      }
      
      // 这里我们定义一个Person类实现结婚的接口
      class Person implements Marry{
          @Override
          public void happyMarry(){
              System.out.println("结婚啦");
          }
      }
      
      // 这里我们定义一个婚庆公司的类实现结婚的接口
      class WeddingCompany implements Marry{
          private Marry target;
      
          public WeddingCompany(Marry target){
              this.target = target;
          }
      
          @Override
          public void happyMarry(){
              before();
              target.happyMarry();
              after();
          }
          public void before(){
              System.out.println("婚礼前布置会场");
          }
          public void after(){
              System.out.println("婚礼后收拾场地");
          }
      }
      
      • 静态代理婚庆公司对象实现了Person类对于婚礼前后的需求,但是不需要Person自己关心如何实现,这样大大提高了代码的复用性

    // TODO 动态代理

  • 相关阅读:
    虚拟内存分页机制的页面置换
    wait函数的作用
    Kubernetes中Pod生命周期
    ufw 禁用端口未生效
    Kubernetes各个组件的概念
    Kubernetes存储卷的使用
    虚拟内存分页机制的地址映射
    GUNgettext 无效
    响应HTTP服务的shell脚本
    yaml语法
  • 原文地址:https://www.cnblogs.com/rainful/p/14905350.html
Copyright © 2011-2022 走看看