####代理模式####
//明星唱歌、跳舞的接口
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;
}
}
}點擊查看更多內(nèi)容
為 TA 點贊
評論
評論
共同學習,寫下你的評論
評論加載中...
作者其他優(yōu)質(zhì)文章
正在加載中
感謝您的支持,我會繼續(xù)努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦


