ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

设计模式9——静态代理模式

2020-08-29 22:31:36  阅读:191  来源: 互联网

标签:静态 void Host 代理 host rent 设计模式 public


设计模式9——静态代理模式

代理模式是SpringAOP的底层。

代理模式分类:

  • 静态代理模式

  • 动态代理模式

代码实现:

1.接口

package com.ghl.staticproxy;

/**
 * @ProjectName DesignPattern
 * @ClassName Rent
 * @Date 2020/8/29 20:57
 * @Author gaohengli
 * @Version 1.0
 */
//静态代理模式
//租房
public interface Rent {

    public void rent();
}

2.真实角色

package com.ghl.staticproxy;

/**
 * @ProjectName DesignPattern
 * @ClassName Host
 * @Date 2020/8/29 20:58
 * @Author gaohengli
 * @Version 1.0
 */
//房东
public class Host implements Rent{
    @Override
    public void rent() {
        System.out.println("房东要出租房子");
    }
}

3.代理角色

package com.ghl.staticproxy;

/**
 * @ProjectName DesignPattern
 * @ClassName Proxy
 * @Date 2020/8/29 21:01
 * @Author gaohengli
 * @Version 1.0
 */
//代理(房租中介)
public class Proxy implements Rent{

    private Host host;

    public Proxy(Host host) {
        this.host = host;
    }

    @Override
    public void rent() {
        seeHose();
        host.rent();
        heotong();
    }

    private void seeHose(){
        System.out.println("中介带你看房子");
    }

    private void heotong(){
        System.out.println("中介带你签合同");
    }
}

4.客户端访问代理角色

package com.ghl.staticproxy;

/**
 * @ProjectName DesignPattern
 * @ClassName Client
 * @Date 2020/8/29 20:59
 * @Author gaohengli
 * @Version 1.0
 */
//租客找房东租房
public class Client {
    public static void main(String[] args) {
        //房东要租房子
        Host host = new Host();
        //代理,中介帮房东出租,会有一些附属操作
        Proxy proxy = new Proxy(host);
        //直接找中介租房
        proxy.rent();
    }
}

代理模式的优缺点:

标签:静态,void,Host,代理,host,rent,设计模式,public
来源: https://www.cnblogs.com/ghlz/p/13583779.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有