您的位置:首页 > 编程语言 > Java开发

java设计模式之代理模式1--静态代理

2018-03-19 14:28 489 查看
Java编程的目标是实现现实不能完成的,优化现实能够完成的,是一种虚拟技术。生活中的方方面面都可以虚拟到代码中。代理模式所讲的就是现实生活中的这么一个概念:助手。代理模式的定义:给某一个对象提供一个代理,并由代理对象控制对原对象的引用。

1.)首先新建一个表演的接口

package com.zhong.pattern.proxy;
/**
* 表演接口
* @author admin
*
*/
public interface Play {
void sing(String songName);
void dance(String danceName);
}

2.)声明一个歌星,实现表演接口

package com.zhong.pattern.proxy;

public class Actor implements Play {

private String name;

public Actor(String name) {
this.name = name;
}
@Override
public void sing(String songName) {
System.out.println("演唱歌曲:"+songName);
}

@Override
public void dance(String danceName) {
System.out.println("跳"+danceName+"");
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

}

3.)声明一个助手,同样也实现表演接口,必须接受表演下单

package com.zhong.pattern.proxy;

public class Assistant implements Play {

private Actor actor;// 歌星

public Assistant(Actor actor) {
this.actor = actor;
}
@Override
public void sing(String songName) {
System.out.println("欢迎歌星:"+actor.getName()+"给我们演唱歌曲:"+songName);
actor.sing(songName);//歌星唱歌
System.out.println("演唱结束,大家掌声在哪里");
}

@Override
public void dance(String danceName) {
System.out.println("欢迎歌星:"+actor.getName()+"给我们表演:"+danceName);
actor.dance(danceName);
System.out.println("舞蹈表演结束,大家掌声在哪里");
}

}

4.)创建一个客户端,模拟一次表演

package com.zhong.pattern.proxy;

public class Test {

public static void main(String[] args) {

Actor actor = new Actor("刘德华");//歌星--被代理对象
Assistant assistant = new Assistant(actor);//助手
assistant.sing("笨小孩");
assistant.dance("小苹果");

}

}

                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: