代理模式-Proxy

本文详细介绍了代理模式的概念及其在Java中的具体实现方式。通过定义一个接口并实现具体的源类及代理类,展示了如何利用代理模式在不修改原有对象的基础上增加额外的功能。

每个模式的名称就表明了该模式的作用,代理模式就是用代理类替代原对象进行一些操作。采用代理类调用原有的方法,可以对原对象产生的结果进行控制。

 

1. 定义一个接口:

1 public interface Sourceable {  
2     void function();
3 }  

2. 定义实现类:

1 public class Source implements Sourceable {  
2   
3     @Override  
4     public void function() {  
5         System.out.println("function");  
6     }  
7 }

3. 定义代理:

 1 public class Proxy implements Sourceable {  
 2   
 3     private Sourceable source;  
 4 
 5     public Proxy(){  
 6         this.source = new Source();  
 7     }  
 8 
 9     public Proxy(Sourceable source){  
10         this.source = source;  
11     }  
12 
13     @Override  
14     public void function() {  
15         before();  
16         source.function();  
17         atfer();  
18     }  
19 
20     private void atfer() {  
21         System.out.println("after");  
22     }  
23 
24     private void before() {  
25         System.out.println("before");  
26     }  
27 } 

可以看出:

(1). 代理类实现和目标类相同的接口

(2). 代理类的功能由调用目标类功能来实现

(3). 在调用功能前后等位置(前、后、前后、catch块)可以添加扩展功能

 

转载于:https://www.cnblogs.com/joshua-aw/p/6029380.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值