1.什么是AOP Aspect Orientied Programming的简称,即 面向(方面)切面编程 ,不改变一个组件源代码的情况下 可以对组件功能进行增强。 例如:servlet中的过滤器,继承,装饰者模式,代理模式, JDK 的代理 必须有统一接口 目标类和代理类 兄弟关系 CGLIB 的 ...
分类:
其他好文 时间:
2018-07-22 17:05:40
阅读次数:
145
装饰者模式(decorators)又叫包装者模式(wapper)。常见的装饰者模式有BufferedReaderbr=newBufferedReader(InputStreamReader(newInputSteam()));就是这样一层嵌套一层,这就是典型的装饰者模式。其中newInputStream()是被装饰对象newInputStreamReader()是内层装饰者newBufferedR
分类:
其他好文 时间:
2018-07-20 00:16:06
阅读次数:
232
假定已经有三个类A,B和C他们的继承关系如下 想进一步扩展类B和类C的功能,新增三个方法 method1()、 method2()、 method3()。 要求 类B和类C 满足 可能新增一个方法,两个方法,或者三个方法 用继承扩展(缺点很大) 解决办法,用继承关系 给B写7个子类(3个方法的排列组 ...
分类:
其他好文 时间:
2018-07-12 20:47:22
阅读次数:
191
装饰者模式 标签 : 设计模式 什么是装饰者模式 动态地给一个对象添加一些额外的职责。就增加功能来说,装饰者模式比生成子类更为灵活。 体会装饰者模式 ![image_1chieqtsf1gg71c1kqh7tpr1g7r9.png 78.4kB][1] 1. Component:组件对象的接口,可以 ...
分类:
其他好文 时间:
2018-07-11 19:57:44
阅读次数:
159
Beverage.php BlueMountainCoffee.php MilkDecorator.php SugarDecorator.php 最终调用: 程序运行结果: ...
分类:
Web程序 时间:
2018-07-04 01:14:42
阅读次数:
169
1.定义: 动态地给一个对象添加一些额外的职责,就增加功能来说,装饰模式比生成子类更为灵活. 2.UML类图: Component是定义一个对象接口,可以给这些对象动态地添加职责,ConcreteComponent是定义了一个具体的对象,也可以给这个对象添加一些职责.Decorator,装饰抽象类, ...
分类:
其他好文 时间:
2018-07-01 11:55:43
阅读次数:
177
一、需求 现在有这样一个需求,公司要开发一个图片应用,首先图片上传到服务器,保存原图。然后再将图片裁剪,加水印,再存一份新的处理后的图。 针对这样一个需求,我们该如何做呢? 很容易想到,我们写一个图片处理类:里面封装几个方法:上传、裁剪、加水印。 但是这样做有什么不好的地方呢?首先,我们现在的需求是 ...
分类:
其他好文 时间:
2018-06-27 18:52:10
阅读次数:
145
GitHub地址:https://github.com/zhangboqing/design-mode/tree/master/src/main/java/com/zbq 一.定义 装饰者模式(Decorator Pattern) :动态地给一个对象增加一些额外的职责(Responsibility) ...
分类:
其他好文 时间:
2018-06-25 01:21:35
阅读次数:
207
前言:总结这两天学到的装饰者模式,并用java小小的实现一下。书中有写到:给爱用继承的人一个全新的设计眼界。(ps,本文最后有个小问题待解决) 什么是装饰者模式(Decorator Pattern)? 定义:动态地将责任附加到对象上。若要扩展功能,装饰者提供了比继承更有弹性的替代方案。 使用的设计原 ...
分类:
其他好文 时间:
2018-06-24 23:57:26
阅读次数:
204
装饰者模式的实现有两个要求:1.装饰者类与目标类要实现相同的借口,或者继承自相同的抽象类。2.装饰者类中要有目标类的引用作为成员变量,具体的赋值一般通过带参构造器完成。 按着这两个要求我们进行类的编写。 目标类: 装饰者基类 具体装饰者类 测试: 测试结果: ...
分类:
其他好文 时间:
2018-06-22 16:31:49
阅读次数:
145