专业的JAVA编程教程与资源

网站首页 > java教程 正文

Java设计模式入门:代理模式(java设计模式之代理模式)

temp10 2024-10-24 17:22:32 java教程 10 ℃ 0 评论

package unit3;


Java设计模式入门:代理模式(java设计模式之代理模式)

public class Java26 {


public static void main(String[] args) {


// 设计模式:代理模式


// 需求1:前台发送的数据都是json格式的数据、要求我们把json数据都转换为java语言

// 需求2:执行方法功能之前判断一下权限、比如说只有管理员才能添加和修改

// 需求3:要求在每一个方法中添加日志功能、记录每个方法的执行过程、谁什么时间做了什么操作


// E e = new F();

// e.m1("a");

// e.m2("b");


// @RequestBody json->java功能、此功能是多个方法的共同点、代理模式实现


E e = new F();// 具体实现:添加、修改

E proxy = new MyProxy(e);

proxy.m1("");

proxy.m2("");


}


}


// 接口

interface E {

// 添加方法

void m1(String s);

// 修改方法

void m2(String s);

}


// 代理类:特点:代理类实现的是多个方法、多个类、多个模块的共同点!!!!!!

class MyProxy implements E {

E e;

public MyProxy(E e) {

this.e = e;

}

@Override

public void m1(String s) {

System.out.println("判断角色");

System.out.println("json转换java");

e.m1("a");

System.out.println("日志功能");

}

@Override

public void m2(String s) {

System.out.println("判断角色");

System.out.println("json转换java");

e.m2("b");

System.out.println("日志功能");

}


}


// 实现

// 理解:使用代理模式后、原来的实现类专心做业务实现即可、其它功能都交由代理类实现。

class F implements E {


@Override

public void m1(String s) {

System.out.println("实现添加功能");

}


@Override

public void m2(String s) {

System.out.println("实现修改功能");

}

}

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表