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