大话设计模式-代理模式(大鸟和小菜Java版)
Posted 香风智乃哈~
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了大话设计模式-代理模式(大鸟和小菜Java版)相关的知识,希望对你有一定的参考价值。
代理模式:在代理模式(Proxy Pattern)中,一个类代表另一个类的功能。这种类型的设计模式属于结构型模式。
在代理模式中,我们创建具有现有对象的对象,以便向外界提供功能接口。
以上就是代理模式的简介
定义一个接口
package 设计模式.代理模式;
//定义一个接口,接口里面有三个需要实现的方法
public interface GiveGirl {
//这个是玩偶方法
public void giveDolls();
//这个是送花的方法
public void giveFlowers();
//这个是给电影票的方法
public void giveMovie();
}
我把被追求者类和追求者类写在一起了,下面的代码包含这两个类
package 设计模式.代理模式;
//被追求者类
public class SGril {
private String name;
// 添加set和get方法
public void setName(String name) {
this.name = name;
}
public String getName() {
return name;
}
}
//追求者类 和被追求者写在一块了
class Pursuit implements GiveGirl{
SGril mm;
//有参构造方法
public Pursuit(SGril 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 giveMovie() {
System.out.println(mm.getName() + " 给你电影票");
}
}
最后加上一个代理类,代替追求者向被追求者送东西
package 设计模式.代理模式;
//代理类
public class Proxy implements GiveGirl{
// 把追求者类的变量先定义出来
Pursuit p;
//一个构造方法,把被追求者对象传给new 出的追求者
public Proxy(SGril mm) {
p = new Pursuit(mm);
}
//重写三个方法,到追求者类中调用
@Override
public void giveDolls() {
p.giveDolls();
}
@Override
public void giveFlowers() {
p.giveFlowers();
}
@Override
public void giveMovie() {
p.giveMovie();
}
}
再加上一个测试主类
package 设计模式.代理模式;
public class Test {
public static void main(String[] args) {
// 为被追求者类new一个对象
SGril jiaojiao = new SGril();
jiaojiao.setName("李娇娇");
// 为代理类new 一个对象
Proxy li = new Proxy(jiaojiao);
li.giveDolls();
li.giveFlowers();
li.giveMovie();
}
}
这个就是代理模式的代码实现,
参考大佬博客:https://blog.csdn.net/yixiang1989/article/details/38493543
以上是关于大话设计模式-代理模式(大鸟和小菜Java版)的主要内容,如果未能解决你的问题,请参考以下文章