代理模式
来源:互联网 发布:php获取对象的属性值 编辑:程序博客网 时间:2024/05/23 23:03
为其他对象提供一种代理,以控制对目标对象的访问;
需要声明代理对象和目标对象共同的接口;
代理对象和目标对象要实现相同的接口;
代理对象包含目标对象的引用,从而可以操作目标对象,同时实现了与目标对象相同的接口,以便任何时候可以替代目标对象,自己也可以定义额外的操作,实现了对目标的封装;
共同接口
public interface Woman {
public void makeEyeWithMan();
public void happyWithMan();
}
目标对象:
public class Sun implements Woman {
@Override
public void makeEyeWithMan() {
// TODO Auto-generated method stub
System.out.println("抛媚眼");
}
@Override
public void happyWithMan() {
// TODO Auto-generated method stub
System.out.println("和男人嗨");
}
}
代理对象:
public class Wang implements Woman {
//保留对目标对象的引用
private Woman woman;
public Wang() {
this.woman = new Sun();// 默认作为Sun的代理 是现了与Sun相同的接口
}
public Wang(Woman woman) {
this.woman = woman; // 也可以是Woman类型对象的代理
}
@Override
public void makeEyeWithMan() {
// TODO Auto-generated method stub
this.woman.makeEyeWithMan();
}
@Override
public void happyWithMan() {
// TODO Auto-generated method stub
this.woman.happyWithMan();
}
public static void main(String[] args) {
Wang wang;
wang = new Wang();
wang.makeEyeWithMan();
wang.happyWithMan();
}
}
- 代理模式--动态代理
- 代理模式-静态代理
- 代理模式-静态代理
- 代理模式 & 动态代理
- 代理模式--静态代理
- 代理模式--动态代理
- 代理模式(动态代理)
- 代理模式-动态代理
- 代理模式-动态代理
- 代理模式动态代理
- 代理模式-静态代理
- 代理模式-动态代理
- 代理模式 -动态代理
- 代理模式---动态代理
- 代理模式-动态代理
- 代理模式--静态代理
- 代理模式!
- 代理模式
- SDKD 2016 Summer Single Contest #01.E
- 控制反转 (IOC) 设计模式
- Linux ifconfig command not found
- UVa 1347 Tour
- 使用JDK自带jvisualvm监控tomcat和java程序
- 代理模式
- 使用HttpURLConnection请求Gson网络解析数据
- Java_字符编码(Unicode、UTF-8、UTF-16)
- Python3 字典(dict, map, 关联数组)
- ch340 win7 64位驱动下载 win10也可以用
- iOS开发,json解析
- Java Ant 学习总结
- 【VS开发】字符串进制等转换关系及方法
- 4.Your test database is running in NOARCHIVELOG mode. Which statement is true regarding the type of