设计模式之第16章-代理模式(Java实现)

  “现在朋友圈真是太让人蛋疼了啊。”“怎么说?”“一堆代理,各种卖东西的,看着好烦人。”“哎,删了呗。”“都是朋友,哪里好意思删啊。”“这倒也是、、、哎,迫于生计,没办法咯。还好我不玩。”“对了,你不就是代理的鼻祖么,身为代理模式,你作何感想。”“以代理之道还治代理之身啊。”

代理模式之自我介绍

  最近出场率超级高,哦不,一直以来出场率都挺高的说的大名鼎鼎的模式,就是我-代理模式是也。有关我的定义如下:Provide a surrogate or placeholder for another object to control access to it.翻译过来就是说:为其他的对象提供一种代理以控制对这个对象的访问。通用类图如下:

设计模式之第16章-代理模式(Java实现)

  代理模式又被称作委托模式,它是一项基本设计技巧。许多其他的模式,如策略、访问者模式本质上是在更特殊场合采用了代理模式,在日常应用中,代理模式也可以提供非常好的访问控制。在Struts2中的Form元素映射中就采用了动态代理模式。

代理模式之自我分析

  使用我的好处如下:

  • 职责清晰。真实的角色就是实现实际的业务逻辑,不用关心其他非本职责的事务。
  • 高扩展性,具体的主题角色可以随时变化,只要其实现了接口,不用管它如何变化,都可以使用接口来使用方法。

代理模式之实现

  具体的情景我们就以朋友圈卖吃的来说吧,恩,就卖辣条好了。首先是一个公司的接口类,实现每个公司的简单功能:

1 public interface ICompany{
2     //打上品牌
3     public void brand(String brand);
4     //出售
5     public void sell();
6 }

  然后是公司的具体实现类:

 1 public class Company implements ICompany{
 2     private String name = "";
 3     //构造函数获取名字
 4     public Company(String name){
 5         this.name = name;
 6     }
 7 
 8     //注册商标
 9     public void brand(String name){
10         System.out.println("公司的名字是:"+name);
11     }
12 
13     //出售产品
14     public void sell(){
15         System.out.println("最后三天清仓处理,买一箱送三箱。。。");
16     }
17 }
View Code

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-06-24
  • 2021-05-09
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2021-05-24
  • 2021-05-18
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案