您的位置:首页 > 其它

代理者模式----设计模式系列

2015-10-31 19:44 357 查看
<pre code_snippet_id="1580901" snippet_file_name="blog_20160217_1_7167142" name="code" class="java">代码注释很清晰就不罗嗦了



public interface iGiveGift {

void GiveFlowers();
void GiveShoes();

}
<pre name="code" class="java">/**
* 真正的追求者
*/
public class Pursuit implements iGiveGift {
private SchoolGirl mm;

public Pursuit(SchoolGirl mm) {
this.mm = mm;
}

@Overridepublic
void GiveFlowers() {
System.out.println(mm.getName() + "送花");
}

@Overridepublic
void GiveShoes() {
System.out.println(mm.getName() + "送鞋");
}
}




/**
*
* 代理者
*/
public class Proxy implements iGiveGift {

Pursuit mPursuit;

public Proxy(SchoolGirl schoolGirl) {
this.mPursuit = new Pursuit(schoolGirl);
}

@Override
public void GiveFlowers() {
mPursuit.GiveFlowers();
}

@Override
public void GiveShoes() {
mPursuit.GiveShoes();
}

}
</pre><pre>


/**被追求者*/
public class SchoolGirl {

private String name;

public String getName() {
return name;
}

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

}
/**
* 为别人做嫁妆----代理者模式 <br/>
* 代理模式,为其他对象提供一种代理以控制对这个对象的访问。
*/
public class Test {

public static void main(String[] args) {

SchoolGirl mSchoolGirl = new SchoolGirl();
mSchoolGirl.setName("狗剩子");

Proxy mProxy = new Proxy(mSchoolGirl);
// 看似调用Proxy的GiveFlowers方法
// 其实在Proxy的GiveFlowers的方法里调用的还是Persuit的GiveFlowers方法
// 好处:在Test类里隐藏了Persuit类
mProxy.GiveFlowers();
mProxy.GiveShoes();

}

}



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