通过代理帮别人追女孩来简单梳理代理模式
追女生时由于害羞,可以选择让一个代理来代劳,送送礼物之类的。
代理模式实现
定义相关类
首先定义一个送礼物的接口
//代理接口
public interface GiveGift {
public void GiveDolls();
public void GiveFlowers();
public void GiveChocolate();
}
定义一个具体的被追求者实体类
//被追求者类
public class SchoolGirl {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
定义一个追求者实体类
//追求者类
public class Pursuit implements GiveGift{
SchoolGirl mm;
public Pursuit(SchoolGirl mm){
this.mm= mm;
}
@Override
public void GiveDolls() {
System.out.println(mm.getName()+"送你的洋娃娃");
}
@Override
public void GiveFlowers() {
System.out.println(mm.getName()+"送你的鲜花");
}
@Override
public void GiveChocolate() {
System.out.println(mm.getName()+"送你的巧克力");
}
}
定义一个送礼物的代理类
public class Proxy implements GiveGift{
Pursuit gg;
public Proxy(SchoolGirl mm){
gg = new Pursuit(mm);
}
@Override
public void GiveDolls() {
gg.GiveDolls();
}
@Override
public void GiveFlowers() {
gg.GiveFlowers();
}
@Override
public void GiveChocolate() {
gg.GiveChocolate();
}
}
定义业务方法
看在具体业务逻辑中如何使用
public class ProxyTest {
public static void func1(){
SchoolGirl mm = new SchoolGirl();
mm.setName("小红");
Proxy daili = new Proxy(mm);
daili.GiveDolls();
daili.GiveFlowers();
daili.GiveChocolate();
}
public static void main(String[] args) {
//代理模式
func1();
}
}
执行结果
小红送你的洋娃娃
小红送你的鲜花
小红送你的巧克力
结果分析
代理模式,是为其他对象提供一种代理以控制对这个对象的访问。
那代理模式一般用在哪些场景呢?
1. 远程代理;
2. 安全代理;
3. 虚拟代理;
联系作者
微信公众号
xiaomingxiaola
(BossLiu)
QQ群
58726094
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 384276224@qq.com