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

    代理模式

    真实类需要实现接口,实现业务方法。
    代理类也要实现接口,增强业务方法,比如在执行真实的业务逻辑之前增加日志记录功能等。

    package cn.com.test.proxy;
    
    //代理类和真实类都需要实现的接口
    interface Bussiness {
        void buy();
        void sell();
    }
    //测试类
    public class ProxyDemo {
        public static void Consumer(Bussiness bussiness){
            bussiness.buy();
            bussiness.sell();
        }
    
        public static void main(String[] args) {
            System.out.println("=========未使用代理模式------------------");
            Consumer(new RealDo());
            System.out.println("==========使用代理模式------------------");
            Consumer(new ProxyDo(new RealDo()));
        }
    }
    
    //真实类,需要实现接口
    class RealDo implements Bussiness {
        public void buy() {
            System.out.println("买买买");
        }
    
        public void sell() {
            System.out.println("卖卖卖");
        }
    }
    
    //代理类,需要实现接口
    class ProxyDo implements Bussiness {
    
        private RealDo realObj;
    
        public ProxyDo() {
        }
    
        public ProxyDo(RealDo realObj) {
            this.realObj = realObj;
        }
    
        public void buy() {
            System.out.println("Proxy对象插入进来,取钱了。");
            realObj.buy();
            System.out.println("Proxy对象插入进来,运货回店里。");
    
        }
    
        public void sell() {
            System.out.println("整理货物。。。。");
            realObj.sell();
            System.out.println("卖完货了,开始数钱。");
    
        }
    }
    
    
  • 相关阅读:
    elasticsearch配置文件详解
    《禅的故事》--易中天
    《爱你就像爱生命》--王小波
    Adaboost算法及其代码实现
    HOG特征原理及代码实现
    SMO算法--SVM(3)
    非线性支持向量机SVM
    核方法-核技巧-核函数
    线性可分支持向量机与软间隔最大化--SVM(2)
    拉格朗日乘子(Lagrange multify)和KKT条件
  • 原文地址:https://www.cnblogs.com/dhu121/p/14841579.html
Copyright © 2011-2022 走看看