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

    静态代理模式

    演示:实现静态代理对比Thread

    package com.lu.staticproxy;
    
    //静态代理模式总结:
    //真实对象和代理对象都要实现同一个接口
    //代理对象要代理真实角色
    
    //好处
        //代理对象可以做很多真实对象做不了的事情
        //真实对象专注做自己的事情
    
    public class StaticProxy {
        public static void main(String[] args) {
            You you = new You();//你要结婚
    
            new Thread( ()-> System.out.println("我爱你") ).start();
    
            new WeddingCompany(new You()).HappyMarry();
    
    //        WeddingCompany weddingCompany = new WeddingCompany(you);
    //        weddingCompany.HappyMarry();
        }
    
    }
    
    interface Marry{
        //人间四大喜事
            //久旱逢甘霖
            //他乡遇故知
            //洞房花烛夜
            //金榜题名时
        void HappyMarry();
    
    }
    
    //真实角色,你去结婚
    class You 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();
            this.target.HappyMarry();//这就是真实对象
            after();
        }
    
        private void after() {
            System.out.println("结婚之后,收尾款");
        }
    
        private void before() {
            System.out.println("结婚之前,布置现场");
        }
    }
    
  • 相关阅读:
    edgecore
    十问 Linux 虚拟内存管理 (glibc)
    Covered Path
    Journey Planning
    K for the Price of One
    Candies!
    2种方式解决nginx负载下的Web API站点里swagger无法使用
    分布式环境下的数据一致性问题的方案讨论
    static,你还敢用吗?
    分离EF connectionString里的db连接串
  • 原文地址:https://www.cnblogs.com/helloxiaolu/p/13305619.html
Copyright © 2011-2022 走看看