####代理模式####
//明星唱歌、跳舞的接口
public interface IStar{
void sing();
void dance();
}
public class Star implements IStar{
private String name;
//构造方法
//set、get方法
void sing(){
System.out.println(getName()+"正在唱歌");
}
void dance(){
System.out.println(getName()+"正在跳舞");
}
}
public class StarProxy implements IStar{
private Star star;
//构造方法
//set、get方法
}
测试:
<1>代理和歌星同时实现统一接口.
<2>代理含有歌星成员变量。
<3>创建star,将star传递给代理,调用代理的方法。
升级后的代理程序:
package java1.daili;
public class StarProxy implements IStar {
private Star star;
int num;
public StarProxy(Star star){
this.star = star;
}
public Star getStar() {
return star;
}
public void setStar(Star star) {
this.star = star;
}
@Override
public void sing() {
if(isDo()){
System.out.println("我是代理,我收到了唱歌请求");
star.sing();
System.out.println("唱歌完毕");
}
}
@Override
public void dance() {
if(isDo()){
System.out.println("我是代理,我收到了跳舞请求");
star.dance();
System.out.println("跳舞完毕");
}
}
public boolean isDo(){
if(num>3){
System.out.println("明星累了");
return false;
}else {
num++;
return true;
}
}
}点击查看更多内容
为 TA 点赞
评论
共同学习,写下你的评论
评论加载中...
作者其他优质文章
正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦


