代理模式的好处

image

接口:

package com.shao.demo02;

public interface UserService {
    public void add();
    public void delete();
    public void update();
    public void query();
}

真实对象:

package com.shao.demo02;

public class UserServiceImpl implements UserService {
    public void add(){
        System.out.println("增加了一个用户");
    };
    public void delete(){
        System.out.println("删除了一个用户");
    };
    public void update(){
        System.out.println("改变了一个用户");
    };
    public void query(){
        System.out.println("查询了一个用户");
    };
}

假设我们在中间要加一个打印日志的方法,一般开发中是不能改变原有代码的,所以采用代理模式

package com.shao.demo02;

public class UserServiceProxy implements UserService{
    private UserServiceImpl userService;

    public UserServiceProxy() {
    }

    public UserServiceProxy(UserServiceImpl userService) {
        this.userService = userService;
    }

    @Override
    public void add() {
        log("add()");
        userService.add();
    }

    @Override
    public void delete() {
        log("delete()");
        userService.delete();
    }

    @Override
    public void update() {
        log("update()");
        userService.update();
    }

    @Override
    public void query() {
        log("query()");
        userService.query();
    }
    public void log(String msg){
        System.out.println("使用了"+msg+"方法");
    }
}

posted @ 2021-10-25 19:12  蘑菇王国大聪明  阅读(74)  评论(0)    收藏  举报