标签:method 增加 rgs ceshi pac 维护 eth http 设计模式
看代码:
package com.ceshi7; public interface Sourceable { public void method(); }
package com.ceshi7; public class Source implements Sourceable{ @Override public void method() { System.out.println("这是原方法!"); } }
package com.ceshi7; public class Proxy implements Sourceable{ private Source source; public Proxy(){ super(); this.source = new Source(); } @Override public void method() { before(); source.method(); atfer(); } private void atfer() { System.out.println("代理之后!"); } private void before() { System.out.println("代理之前!"); } }
package com.ceshi7; public class ProxyTest { public static void main(String[] args) { Sourceable source = new Proxy(); source.method(); } }
测试结果:
忽然发现该代理模式和之前的装饰器模式极其相似。
区别仅在于需要用到的装饰器模式调用时引入了一个对象,而代理模式并没有;
但是其中思想并不同,装饰器模式只是将引用的类进行装饰,也就是用来扩展;
而代理模式则是用来代理处理一些相关事物。
所以修改的话使用代理模式是对代理类进行修改。装饰器模式是对接口的实现进行扩展。
一个是修改,一个是增加。两者经常结合使用。
感觉是增加一个装饰类仿佛是增加一个代理类,可以这么理解。
标签:method 增加 rgs ceshi pac 维护 eth http 设计模式
原文地址:https://www.cnblogs.com/zhengyuanyuan/p/10749278.html