Java静态代理---理解
程序员文章站
2022-06-10 16:30:00
...
package com.wang.thread;
/**
* 静态代理:
* 真实对象和代理对象实现同一个接口
* 接口中定义了真实对象需要做的事情,但不知道细节
* 真实对象实现接口,了解要做的事情的所有细节
* 代理对象,满足真实对象去做自己的事情,但是可以提供一些额外的帮助
*/
public class ProxyDemo {
public static void main(String[] args) {
People people = new People("小王");
MarryProxy mp = new MarryProxy();
mp.setPeople(people);
mp.happyMary();
}
}
interface Marry{
// 不知道细节,但是知道真实对象要做的事情
void happyMary();
}
/**
* 真实对象
*/
class People implements Marry{
public People(String name) {
this.name = name;
}
private String name;
//细节
@Override
public void happyMary() {
System.out.println(this.name+"结婚了");
}
}
class MarryProxy implements Marry{
private People people;
public People getPeople() {
return people;
}
public void setPeople(People people) {
this.people = people;
}
///代理对象,重写接口方法时,可以做一些其他的操作,达到增强原有功能的作用。
@Override
public void happyMary() {
before();
this.people.happyMary();
after();
}
void before(){
System.out.println("准一些准备工作");
}
void after(){
System.out.println("准一些善后工作");
}
}
推荐阅读
-
Java中静态代码块、构造代码块、构造函数、普通代码块
-
《深入理解java虚拟机》学习笔记--第三章:垃圾收集器与内存分配策略 jvm
-
《深入理解java虚拟机》学习笔记--第四章:虚拟机性能监控与故障处理工具 虚拟机java
-
《深入理解java虚拟机》学习笔记--第四章:虚拟机性能监控与故障处理工具 虚拟机java
-
《深入理解java虚拟机》学习笔记--第三章:垃圾收集器与内存分配策略 jvm
-
利用反射获取Java类中的静态变量名及变量值的简单实例
-
effective java 3th item1:考虑静态工厂方法代替构造器
-
Java 继承与多态的深入理解
-
Java web页面静态化_html/css_WEB-ITnose
-
Java 关键字 volatile 的理解与正确使用