代理 https://www.yuque.com/wangchao-volk4/fdw9ek/pc33e3

    1. public interface Animal {
    2. void eat();
    3. }
    1. public class Dog implements Animal{
    2. @Override
    3. public void eat() {
    4. System.out.println("dog eat......");
    5. }
    6. }
    1. // 代理类
    2. public class AnimalProxy implements Animal {
    3. private Animal animal;
    4. public AnimalProxy(Animal animal) {
    5. this.animal = animal;
    6. }
    7. @Override
    8. public void eat() {
    9. System.out.println("before eat.....");
    10. animal.eat();
    11. System.out.println("after eat.....");
    12. }
    13. }
    1. // 工厂用来生产代理类
    2. public class ProxyFactory {
    3. // 通过工厂获取代理类
    4. public static Animal getAnimal(Animal animal) {
    5. return new AnimalProxy(animal);
    6. }
    7. }

    // 测试

    1. public class Main {
    2. public static void main(String[] args) {
    3. Animal animal = ProxyFactory.getAnimal(new Dog());
    4. animal.eat();
    5. }
    6. }