博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
静态代理
阅读量:6342 次
发布时间:2019-06-22

本文共 1263 字,大约阅读时间需要 4 分钟。

       代理是一种设计模式,提供了对目标对象另一种访问方式。。。可以对其功能进行扩展(符合OCP原则)


 我们先来看静态代理。。(1)静态代理中代理对象必须和目标对象实现统一的接口

先定义接口类 IStudent

1 package cn.secol.static_proxy;2 3 public interface IStudent {4     void  learn();5 }

 

目标对象类StudentImp

 

1 package cn.secol.static_proxy; 2 /** 3  * 目标对象 4  * @author Administrator 5  * 6  */ 7 public class StudentImp implements IStudent { 8  9     @Override10     public void learn() {11         System.out.println("演示静态代理");12     }13 14 }

 

 

代理对象类StudentProxy

 

package cn.secol.static_proxy;/** * 代理对象 * @author Administrator * */public class StudentProxy implements IStudent {        //目标对象的引用    private StudentImp stu;        public StudentProxy(StudentImp stu) {        this.stu = stu;            }    @Override    public void learn() {        System.out.println("处理前code...");        stu.learn();        System.out.println("处理后code...");    }}

 

 

 

测试类TestDemo

package cn.secol.static_proxy;

import org.junit.Test;
/**
 * 测试类
 * @author Administrator
 *
 */
public class TestDemo {
    
    @Test
    public void fun1(){
        StudentProxy proxy = new StudentProxy(new StudentImp());
        proxy.learn();
    }
}
运行结果:

处理前code...演示静态代理处理后code...

 

静态代理的优缺点:

  1.因为代理对象需要与目标对象实现一样的接口 ,所以会造成多出很多代理类(可以用代理工厂改进)

  2.一旦接口添加方法,代理对象和目标对象都要做出改变(违背了OCP原则)

转载于:https://www.cnblogs.com/csong7876/p/7851036.html

你可能感兴趣的文章
C#之MemberwiseClone与Clone
查看>>
Android性能优化之利用Rxlifecycle解决RxJava内存泄漏
查看>>
转: 如何为你的开源项目选择一个合适的开源协议?
查看>>
Atitit 记录方法调用参数上下文arguments
查看>>
webstorm常用功能FTP,及常用快捷键
查看>>
eclipse html 打开方式
查看>>
[求助] win7 x64 封装 出现 Administrator.xxxxx 的问题
查看>>
人类投资经理再也无法击败电脑的时代终将到来了...
查看>>
一个最小手势库的实现
查看>>
HoloLens开发手记 - Vuforia开发概述 Vuforia development overview
查看>>
Android支付之支付宝封装类
查看>>
<亲测>CentOS中yum安装ffmpeg
查看>>
【分享】马化腾:产品设计与用户体验
查看>>
【机器学习PAI实践十】深度学习Caffe框架实现图像分类的模型训练
查看>>
全智慧的网络:思科十年来最具颠覆性的创新
查看>>
怎样将现有应用迁移到 VMware NSX
查看>>
赛门铁克收购以色列移动安全初创公司Skycure 旨在构建网络安全防御平台
查看>>
《Photoshop蒙版与合成(第2版)》目录—导读
查看>>
“最佳人气奖”出炉!4月27号,谁能拿到阿里聚安全算法挑战赛的桂冠?
查看>>
《网页美工设计Photoshop+Flash+Dreamweaver从入门到精通》——2.6 图层与图层样式...
查看>>