ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

java 编程基础 Class对象 反射:代理模式和静态代理

2021-05-16 21:35:10  阅读:141  来源: 互联网

标签:java Movie void 电影 代理 接口 Class movie public


生活中的代理

 

 类(对象)代理模式

代理模式是面向对象编程中比较常见的设计模式。
  • 1. 用户只关心接口功能,而不在乎谁提供了功能。上图中接口是 Subject
  • 2. 接口真正实现者是上图的 RealSubject,但是它不与用户直接接触,而是通过代理。
  • 3. 代理就是上图中的 Proxy,由于它实现了Subject接口,所以它能够直接与用户接触。
  • 4. 用户调用 Proxy 的时候,Proxy 内部调用了 RealSubject。所以,Proxy 是中介者,它可以增强 RealSubject 操作。

静态代理模式

使用播放电影案例说明

用户--->加广告的电影(电影)--->真正的电影(电影接口) 

1,定义一个电影接口

package com.zmd.staticProxy;

/**
 * @ClassName Movie
 * @projectName: object1
 * @author: Zhangmingda
 * @description: XXX
 * date: 2021/5/16.
 */
public interface Movie {
    /**
     * 接口中定义的方法,认都是public (公开)、abstract  (抽象) 的
     * 播放电影的方法:
     */
    void play();
}

2,定义真的电影《战狼》实现Movie接口

package com.zmd.staticProxy;

public class ZhanlangMovie implements Movie{
    public void play(){
        System.out.println("战狼播放中...");
    }
}

3,定义加广告的电影(电影城加工后),实现接Movie口

package com.zmd.staticProxy;

public class RealMovie implements Movie{
    private Movie movie;

    public RealMovie(Movie movie) {
        this.movie = movie;
    }

    public void play(){
        System.out.println(" 欢迎 购买爆米花 ,电影要开始喽...");
        movie.play();
        System.out.println("下期 《反贪风暴》 即将开播,敬请期待");
    }
}

4,定义播放器,播放电影

package com.zmd.staticProxy;

public class MovieTest {

    public static void playMovie(Movie movie){
        movie.play();
    }
    public static void main(String[] args) {
        playMovie(new RealMovie(new ZhanlangMovie()));
    }
}

 

标签:java,Movie,void,电影,代理,接口,Class,movie,public
来源: https://www.cnblogs.com/zhangmingda/p/14774921.html

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

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

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

ICode9版权所有