静态代理

本文详细解析了静态代理设计模式的三个核心组成部分:抽象角色、代理角色和真实角色。通过具体的代码实例,展示了如何通过代理角色来调节真实角色的行为,从而丰富抽象角色的功能。

静态代理分为三部分:

抽象角色:抽象角色给继承自己的角色制定规则,是一个接口。

代理角色:代理角色是一个中间角色,丰富抽象角色制定的规则的内容,是一个类。

真实角色:真实角色是一个真正意思上的实施角色,抽象角色制定的规则都是由他去做,是一个类。

看抽象角色的代码:

package com.top;

public interface Action {
	//抽象角色,给子类定义规则。
	public void doAction(); 
	public void sayGood();
}

代理角色的代码:

package com.daili;

import com.real.Real;
import com.top.Action;

public class Daili implements  Action{
	
	private Real real = new Real();
	/*
	 * 	代理主要是中间作用,
	 * 抽象角色规定真实角色去做实际的事情,
	 * 代理角色则是作为一个中间角色来调节真实角色的行为,
	 * 来丰富抽象角色规定的方法。
	 * */
	public Daili(Real real) {  //给定一个关于真实角色的构造方法。
		this.real = real;
	}
	
	@Override
	public void doAction() {
		real.doAction();  //代理实现了real中的doAction方法
	}
	@Override
	public void sayGood() {
		real.sayGood(); //代理实现了real中的sayGood方法
		real.doAction();//这里还可以实现doAction,丰富了sayGood方法的内容!
	}
}

真实角色的代码:

package com.real;

import com.top.Action;

public class Real implements Action{
	@Override
	public void doAction() {
		System.out.println("实现了doAction方法!");
	}
	@Override
	public void sayGood() {
		System.out.println("实现了sayGood方法!");
	}

}

 

测试代码:

package com.test;

import com.daili.Daili;
import com.real.Real;

public class TestProxy {
	public static void main(String[] args) {
		Real real = new Real() ;  //创建真实角色,一切方法都是由真实角色去完成,所以需要。
		Daili daili = new Daili(real); //实现构造
		daili.doAction();  //完成代理
	}
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值