代理者模式----设计模式系列
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(); } }
相关文章推荐
- iOS系统开发:打电话、发短信
- 电压电流到底是什么?
- ubuntu学习小结(2)
- 碰撞检测
- jquery 获取及设置input各种类型的值
- ThreadLocal讲解
- property declaration 属性声明
- 显式Intent与隐式Intent
- 近三月杂谈
- DL:RBM 简介、网络结构
- [转]SQL查询语句中的 limit offset
- web页面中可以包含多个对象
- 汇编(五)
- Codeforces Round #273 (Div. 2)C. Table Decorations 数学
- 手机访问不了Eclipse中Tomcat服务?
- 拦截器过滤器登录检测
- 开源点评:Protocol Buffers介绍
- rsync同步工具实战
- viewPager个性切换
- 1、类和对象