浅谈自己对Java代理模式的理解--即为什么要用&怎么用
来源:互联网 发布:nodejs 数组去重 编辑:程序博客网 时间:2024/04/30 10:54
首先,国际惯例,上Java代理模式的定义:
Java代理模式:对其他对象提供一种代理以控制对这个对象的访问。
定义很简单,就一句话,怎么去理解,不急,先听一个小故事:
故事角色:小明(从小斗智斗勇,多次死里逃生,逼格高),小王(还未成长为隔壁老王的四好青年)
一日,公司boss让小明写一个登陆程序,并打印出登陆用名,小明面带诡异的微笑,“啪啪”敲出代码:
//先写个接口吧public interface LoginInterface { void print();}
//实现登陆程序打印public class LoginPrint implements LoginInterface { @Override public void print() { System.out.println("小明!"); }}小明将所写代码提交给boss,翌日小明被boss打死(BOSS:尼玛,登陆验证都没有哦),boss又叫小王继续完成这个登陆程序,加上登陆验证,但不准改动小明所写的源代码(BOSS:哼,这小王最近跟我小姨子走的太近了!!!)。
小王看完小明所写的代码,直呼“WTF!!!”,BOSS又不让改动源码,“哈哈,不过山人自有妙计。嘿嘿!!!看来下次要搬到BOSS隔壁去啊!!!”
几日后,小王凭借超人的智慧及无可阻挡的魅力,在BOSS的小别墅里完成了代码:
public class ProxyClass implements LoginInterface {private LoginInterface proxyInterface;public ProxyClass(LoginInterface proxyInterface){this.proxyInterface=proxyInterface;}//登陆验证public void loginCheck(String username,String password){if(username.equals("xiaoming")&&password.equals("123456")){System.out.println("验证通过!");print();}else{System.out.println("验证未通过!");}} @Override public void print() { proxyInterface.print(); }}次日,提交BOSS,BOSS满怀心事的验证小王的代码:
public class Test {public static void main(String[] args) { LoginPrint realClass=new LoginPrint(); ProxyClass proxyClass=new ProxyClass(realClass); proxyClass.loginCheck("xiaoming","123456");}}
面对以下的结果,boss无奈长叹一声!
故事结束,这个故事简洁明了的说出了代理的作用,及为什么要用代理:老板不让小王更改小明所写的登陆类LoginPrint。小王采取的方法就是采用代理模式写出了登陆验证ProxyClass,完成任务。
阅读全文
0 0
- 浅谈自己对Java代理模式的理解--即为什么要用&怎么用
- 自己对代理模式的一点理解
- 对Java代理模式的理解
- 对代理模式与Java动态代理类的理解
- 对代理模式与Java动态代理类的理解
- 对代理模式与Java动态代理类的理解
- 对代理模式与Java动态代理类的理解
- 对代理模式与Java动态代理类的理解
- 对代理模式与Java动态代理类的理解
- 对代理模式与Java动态代理类的理解
- 对代理模式与Java动态代理类的理解
- 对代理模式与Java动态代理类的理解
- 对代理模式与Java动态代理类的理解
- 对代理模式与Java动态代理类的理解
- 对代理模式与Java动态代理类的理解
- 对代理模式与Java动态代理类的理解
- 对代理模式与Java动态代理类的理解
- 对代理模式与Java动态代理类的理解
- easyUI easyui-combobox 和 easyui-combogrid 用法
- 资讯精选 | 机器学习能为你的业务做什么?有些事情你肯定猜不到!
- tf.equal
- 什么是BSS、OSS和MSS 说明
- Word界面中无法切换到输入法的解决…
- 浅谈自己对Java代理模式的理解--即为什么要用&怎么用
- Netkeeper强制升级,第三方wifi共…
- 怎样使用局域网内的一台机器做为代…
- Linux运维学习:计算机相关的基础…
- 单片机学习:用三个按键实现对四线…
- 学习SHELL编程常见的vim命令
- 基本正则表达式和扩展正则表达式的…
- 学习使用sed
- Raid基础知识