Java23种设计模式——代理模式

来源:互联网 发布:tk域名续费 编辑:程序博客网 时间:2024/05/22 13:57

该系列文章为博主学习笔记,原文请参考参考连接
本文禁止转载,但是欢迎大家留言区留言交流[微笑]

先简单谈一谈自己对代理模式的理解:在客户端和产品类(客户端想要访问的类,我们简称产品类吧)之间创建一个新的类,这个类称之为代理类。通过代理类去访问产品类。

UML:

这里写图片描述

代码:
比如现在有这么一个需求

这里写图片描述

public interface Software {    public void Method() throws Exception;}
public class Proxy implements Software {    private RealSoftware realSoftware = new RealSoftware();    public void BeforeMethod() {        System.out.println(new Date());    }    @Override    public void Method() {        BeforeMethod();        try {            realSoftware.Method();            SuccessMethod();        } catch (Exception e) {            FailMethod();            e.printStackTrace();        }    }    public void SuccessMethod() {        System.out.println("方法Method()调用成功");    }    public void FailMethod() {        System.out.println("方法Method()调用失败");    }}
public class RealSoftware implements Software {    @Override    public void Method() throws Exception{        System.out.println("方法Method()被调用");    }}
public class MyClass {    public static void main(String[] args) {        Software software=new Proxy();        try {            software.Method();        } catch (Exception e) {            e.printStackTrace();        }    }}

输出:

Fri Nov 10 23:07:00 CST 2017
方法Method()被调用
方法Method()调用成功

使用代理模式,可以使客户端完全不用知道产品类的具体实现的细节,只需要知道代理类和需要调用的方法,具体这个方法都干了些什么,客户端不知道,这样降低了耦合。就比如说我想要去中介找房子,我只需要告诉中介我的需求,而我并不用关心中介是通过什么方法帮我找到的房子。

通过在客户端可以通过配置文件去指定具体的代理类,对代理类的更改只需要更改配置文件就行了,符合开闭原则。

微信公众号:
这里写图片描述

QQ群:580335881

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 免维护电瓶亏电怎么办 自煮小火锅吃完怎么办 孕囊形状是扁的怎么办 老公去世房产转到老婆手续怎么办 宝宝一周岁隔奶不喝牛奶怎么办 高中生偷买手机家长怎么办 丈夫迷上打麻将妻子该怎么办 三星pin码忘记了怎么办 who缺陷精子率98怎么办 吃桃胶脸过敏了怎么办 安卓8.0无法充值怎么办 刚下高速限行怎么办 西安限号外地车怎么办 深圳下高速限行怎么办 物业断业主的电怎么办 物业要求拆除外晾衣架怎么办 安置费一次给了房子没建好怎么办 虎牙充值不到账怎么办 平安保险交20年怎么办 u盘里东西乱码了怎么办 手机指环支架松了怎么办 运动完放屁很臭怎么办 腾讯柒个我要会员怎么办 海风吹的变黑了怎么办 冻豆角炖不烂糊怎么办 腿被热水烫了怎么办 肉和冰箱冻住了怎么办 解冻的肉臭了怎么办 临时用电电缆线破皮怎么办 阳台按自来水墙面脱落怎么办 墙被暖气熏黑了怎么办 下水管比地砖低怎么办 马桶下水管短了怎么办 下水管比马桶低怎么办? 寻常疣液氮冷冻后该怎么办 寻常疣冷冻后起水泡胀痛怎么办 冷冻后大水泡痒怎么办 19岁的宫颈糜烂怎么办 发面酸了没有碱怎么办 面发时间长酸了怎么办 丽珠兰打完红肿怎么办