1.代理,可以理解为被代理类想干的活由代理类来干,代理类在干被代理类的活的同时,也可以干自己的活。
package com.yl.pdfdemo.day08.p6;
/**
* @Author wfj
* @Date 2021/7/13
* @Description 静态代理例子 ,特点:代理类和被代理类在编译期间就确定下来了
* @Version 1.0
*/
public class StaticProxy {
public static void main(String[] args) {
//创建被代理类对象
FruitFactory f1 = new AppleFruitFactory();
//创建代理类对象
FruitFactory f2 = new ProxyFruitFactory(f1);
f2.produceFruit();
}
}
interface FruitFactory {
void produceFruit();
}
//代理类
class ProxyFruitFactory implements FruitFactory{
//用被代理对象进行实例化
private FruitFactory fruitFactory;
public ProxyFruitFactory(FruitFactory fruitFactory) {
this.fruitFactory = fruitFactory;
}
@Override
public void produceFruit() {
System.out.println("代理工厂start......");
fruitFactory.produceFruit();
System.out.println("代理工厂end.......");
}
}
//被代理类
class AppleFruitFactory implements FruitFactory{
@Override
public void produceFruit() {
System.out.println("produce apple!!!");
}
}