zoukankan      html  css  js  c++  java
  • 简易的设计模式——代理模式

    定义

    为其他对象提供一种代理以控制对这个对象的访问。

    几种角色

    • Subject抽象主题角色:定义业务的接口或者抽象类。
    • RealSubject具体主题角色:实现业务的具体角色,也是被代理的对象。
    • Proxy代理主题角色:代理类,负责对真实角色的应用。

    代码实现

    抽象主题角色 Subject.java

    public interface Subject {
        //定义一个方法
        public void request();
    }
    

    具体主题角色 RealSubject.java

    public class RealSubject implements Subject {
        @Override
        public void request() {
            System.out.println("我在实现业务");
        }
    }
    

    代理主题角色 Proxy.java

    public class Proxy implements Subject {
    
        private Subject subject;
    
        public Proxy(){
            this.subject = new Proxy();
        }
    
        public Proxy(Subject subject ){
            this.subject = subject;
        }
    
        @Override
        public void request() {
            this.before();
            this.subject.request();
            this.after();
        }
    
        public void before(){
            //do something
        }
    
        public void after(){
            //do something else
        }
    }
    

    代理模式的优点

    • 职责清晰:真实的角色只用实现实际的业务逻辑,而不关心其他的事情。
    • 高扩展性:具体角色的业务是随时都会发生变化的,只要它实现了接口,代理可以不做任何变化继续使用。
  • 相关阅读:
    STM32f469I discovery烧写demo例程
    dsp5509的中断系统
    DSP5509之采样定理
    DSP5509开发之FPGA接口
    mongodb学习之:安全和认证
    mongodb学习之:GridFS
    tornado之异步web服务一
    mongodb学习之:数据库命令以及固定集合
    docker: Dockerfile命令介绍
    mongodb学习之:聚合
  • 原文地址:https://www.cnblogs.com/whthomas/p/4437423.html
Copyright © 2011-2022 走看看