设计模式——代理模式

静态代理


简单实现

1、服务接口

2、服务实现类

3、服务的抽象代理类

其中service属性属于被代理的目标

4、服务的具体代理类

5、实现代理过程

为什么要用代理模式?

比如我们将吃饭封装成一个方法,方法内容:吃饭。

当我们想把吃饭改成:洗手——吃饭——刷牙

那我们怎么改呢?改原方法?这样

吃饭(){

    洗手();

    吃饭;

    刷牙();

}

人类.吃饭

是这样改么?那么当我们发现这种方式太过于麻烦,又想改回来的时候,就将代码重新注掉呗。那么当我们想保持两种吃饭的方法又该怎么办呢?写两个吃饭的方法么?

有这样一种方式,既可以做到代码复用,又可以不用改动代码逻辑。

健康的人类

代码逻辑不用复制。也没有修改原吃饭的方法代码。

这样就把选择权交给了用户,自己到底是想成为一个健康的人,还是一个只会吃的人。

你可能感兴趣的:(设计模式——代理模式)