设计模式——代理模式
2019-01-26 本文已影响237人
大黑跟小白的日常
静态代理
简单实现
1、服务接口
2、服务实现类
3、服务的抽象代理类
其中service属性属于被代理的目标4、服务的具体代理类
5、实现代理过程
为什么要用代理模式?
比如我们将吃饭封装成一个方法,方法内容:吃饭。
当我们想把吃饭改成:洗手——吃饭——刷牙
那我们怎么改呢?改原方法?这样
吃饭(){
洗手();
吃饭;
刷牙();
}
人类.吃饭是这样改么?那么当我们发现这种方式太过于麻烦,又想改回来的时候,就将代码重新注掉呗。那么当我们想保持两种吃饭的方法又该怎么办呢?写两个吃饭的方法么?
有这样一种方式,既可以做到代码复用,又可以不用改动代码逻辑。
健康的人类代码逻辑不用复制。也没有修改原吃饭的方法代码。
这样就把选择权交给了用户,自己到底是想成为一个健康的人,还是一个只会吃的人。