####代理模式####
//明星唱歌、跳舞的接口
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 点赞
评论
共同学习,写下你的评论
评论加载中...
作者其他优质文章
正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦