代理模式和装饰模式的差别
来源:互联网 发布:网络防火墙怎么关闭 编辑:程序博客网 时间:2024/05/12 20:12
学了代理模式之后发现静态代理模式和装饰模式非常的相似,代理类和被代理的客户实现同一个接口,装饰者和被装饰者也是实现的同一个接口,实现方式也类似(针对接口编程是一个主要设计原则)。搜索之,得到结论:代理模式主要是控制对某个特定对象访问,而装饰模式主要是为了给对象添加行为。
所以两类的设计模式的代码还是有一些差别。下面代码来着网上,做了一些修改,原网址http://www.cnblogs.com/jaredlam/archive/2011/11/08/2241089.html
静态代理模式
通常自己构造对象,方法中控制对象的访问。
//接口interface Subject{public void doAction();}//实现类 class RealSubject implements Subject{@Overridepublic void doAction() { System.out.println("do something");} } //代理类 class Proxy implements Subject{ private Subject subject; public Proxy(){ //关系在编译时确定 subject = new RealSubject(); } public void doAction(){ //控制访问 if() subject.doAction(); else ... }}装饰模式
在构造函数中传入被装饰的对象。
interface Component{ public void operate();}//具体构件class ConcreteComponent implements Component{ public void operate(){ System.out.print("do somthing"); }}//装饰者class Decorator implements Component{ private Component component; public Decorator(Component component){ //通过构造器传值 this.component = component } public void operation(){ do something component.operation(); do Something }}
0 0
- 代理模式和装饰模式的差别
- 代理模式和装饰模式的理解
- 代理模式和装饰模式的区别
- 装饰模式和代理模式的区别
- 装饰模式和代理模式的区别
- 代理模式和装饰模式的区别
- 代理模式和装饰模式的区别
- 装饰模式和代理模式的区别
- 装饰模式和代理模式
- 代理模式和装饰模式
- 代理模式和装饰模式
- 装饰模式和代理模式
- 装饰模式和代理模式
- 设计模式--代理模式--以及和装饰模式的区别
- 装饰模型和代理模式的区别
- 代理模式,适配器模式和装饰模式'
- 设计模式-代理模式和装饰模式
- 代理模式和装饰者模式的异同点比较
- 通过Ajax方式提交含有文件的表单
- tomcat服务器启动后,但是使用默认端口打不开网页
- CodeForces 508A Pasha and Pixels
- oracle查看视图引用表及视图内容
- QSettings用法详解
- 代理模式和装饰模式的差别
- NoSQL
- Java Array和Arrays
- 二进制中1的个数统计
- ios null
- STL笔记(6)——Traits编程技法(一)
- 程序员,怎么样面对自己三十岁后的下坡路
- GIT常用命令
- 技术记录----开机向导的问题解决以及流程整理