Dos casos lo llevan a comprender el modelo de proxy estático

¿Qué es un proxy estático?

Los agentes en la vida son muy comunes, como compras, abogados, intermediarios, etc. Todos tienen una cosa en común: ayudar al agente a lidiar con algunas cosas antes y después. El agente solo necesita enfocarse en la parte de lo que quiere hacer.
El agente en Java es similar: el modelo de agente puede ayudar al agente a completar algunos preparativos preliminares y trabajos posteriores, pero el agente aún completa la lógica comercial central.

Modo proxy

Caso uno

Alquiler
1. Interfaz

//租房
public interface Rent {
    public void rent();
}

2. Personajes reales

//房东
public class Host implements Rent {
    public void rent(){
        System.out.println("房东出租房子!");
    }
}

3. Rol del agente

public class Proxy implements Rent {
    private Host host;

    public Proxy() {
    }
    public Proxy(Host host) {
        this.host = host;
    }

    public void rent(){
        seeHouse();
        host.rent();
        hetong();
        fee();
    }
    //看房
    public void seeHouse(){
        System.out.println("中介带你看房");
    }
    //签合同
    public void hetong(){
        System.out.println("签合同");
    }
    //收费
    public void fee(){
        System.out.println("收取中介费用");
    }
}

4. Acceso del cliente

public class Client {
    public static void main(String[] args) {
        //房东出租房子
        Host host = new Host();
        //代理,中介帮房东租房子,但是代理角色一般会有一些附属操作!
        Proxy proxy = new Proxy(host);
        proxy.rent();
    }
}

Caso 2

1. interfaz

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

2. Personajes reales

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("查询一个用户");
    }
}

3. Rol del agente

public class UserServiceProxy implements UserService {

    private UserServiceImpl userService;

    public void setUserService(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 + "方法");
    }
}

4. Acceso del cliente

public class Client {
    public static void main(String[] args) {
        UserServiceImpl userService = new UserServiceImpl();
        UserServiceProxy proxy = new UserServiceProxy();
        proxy.setUserService(userService);
        proxy.query();
    }
}

Resumen:

Los beneficios del modelo proxy:

  • Puede hacer que la operación de personajes reales sea más pura, sin tener que prestar atención a algunos negocios públicos
  • El público será entregado al rol de agente, dándose cuenta de la división del negocio.
  • Gestión centralizada conveniente cuando se amplían los servicios públicos

Desventajas del modo proxy:

  • Un rol real producirá un rol de agente, la cantidad de código se duplicará y la eficiencia del desarrollo disminuirá
51 artículos originales publicados · Me gusta 73 · Visitas 3700

Supongo que te gusta

Origin blog.csdn.net/qq_41256881/article/details/105430183
Recomendado
Clasificación