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

    package edu.aeon.proxy;
    
    /**
     * 说明:静态代理 角色:真实角色、代理角色 条件:两种觉得必须实现同一接口 例子:1.北京找房(中介) 2.结婚(找婚庆公司)...等
     * 
     * @author lzj
     */
    public interface Rent {
        void lease();
    }
    
    class Host implements Rent {
        /**
         * 主人:出租房屋
         */
        @Override
        public void lease() {
            System.out.println("房屋出租!");
        }
    
    }
    
    class Agent implements Rent {
        private Rent host;
    
        /**
         * 代理商(中介必须获得房屋出租权)
         * 
         * @param host
         */
        public Agent(Rent host) {
            this.host = host;
        }
        /**
         * 代理商出租房屋
         */
        @Override
        public void lease() {
            before();
            host.lease();
            after();
    
        }
    
        void before() {
            System.out.println("出租房屋前:带客户看房!");
        }
    
        void after() {
            System.out.println("出租房屋后:签订合同!");
        }
    
    }

    测试类:

    package edu.aeon.proxy;
    
    /**
     * 说明:静态代理模式
     * 
     * @author lzj
     *
     */
    public class TestProxy {
    
        public static void main(String[] args) {
            Host host = new Host();
            // 代理商或者中介必须获得房主的授权才能出租房屋
            Agent agent = new Agent(host);
            agent.lease();
        }
    
    }

     测试结果:

    如有任何疑问可联系邮箱: 给我发邮件、或直接联系QQ:1584875179 || 点返回首页

  • 相关阅读:
    Metro-UI系统-1-tile标签
    linux 修改文件最大数
    linux 利用cat写入一段文件
    linux for 循环的小应用
    办公区公网Ip访问不到阿里云ECS
    Django 构建一个项目
    Django 基础篇
    iptables 生产环境下基础设置
    centos7 部署LNMP
    查看sqlserver被锁的表以及如何解锁
  • 原文地址:https://www.cnblogs.com/aeon/p/9742215.html
Copyright © 2011-2022 走看看