java 代理设计模式(静态代理)

代理设计模式分为静态代理动态代理

java代理设计模式(静态代理模式)

代理设计模式严格来讲就是两个子类共同实现一个接口,其中一个子类是要真实完成的任务,另外一个子类是负责辅助完成真实任务的类。

举例说明:若一个人想出去吃大餐,那么他的一个接口就是实现“吃”的动作,其中一个子类就是要完成吃这个真实的业务,另外一个类(例如是餐馆)就要负责辅助完成“吃”这个动作,实现核心目的。

通过图示理解:
在这里插入图片描述

代码示例:

interface ISubject{//接口,核心目的就是吃
	public void eat();
}

class RealSubject implements ISubject{//真实实现了目的
	public void eat() {
		System.out.println("吃上饭了,不饿了!");
	}
}

class ProxySubject implements ISubject{//代理实现
	private ISubject subject;
	public ProxySubject(ISubject subject) {
		this.subject=subject;
	}
	public void prepare() {
		System.out.println("穿衣服准备出门!");
	}
	public void restaurant() {
		System.out.println("点餐!");
	}
	public void eat() {//接口子类一定要覆写抽象方法
		this.prepare();
		this.restaurant();
		this.subject.eat();//真实的业务
	}
}

class Factory{
	public static ISubject getInstance() {
		return new ProxySubject(new RealSubject());
	}
}

public class ProxyDemo {
	public static void main(String[] args) {
		ISubject sub=Factory.getInstance();
		sub.eat();
	}

}

运行结果:

穿衣服准备出门!
点餐!
吃上饭了,不饿了!

(如有错误和不足,欢迎批评指正!)

猜你喜欢

转载自blog.csdn.net/weixin_41550144/article/details/86515629
今日推荐