欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

静态代理

程序员文章站 2022-06-09 21:39:21
...

静态代理分为三部分:

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

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

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

看抽象角色的代码:

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();  //完成代理
	}
}

 

相关标签: Proxy