Decorator常被翻译成"装饰",我觉得翻译成"油漆工"更形象点,油漆工(decorator)是用来刷油漆的,那么被刷油漆的对象我们称decoratee。这两种实体在Decorator模式中是必须的。Decorator定义:动态给一个对象添加一些额外的职责,就象在墙上刷油漆。使用Decorato...
分类:
编程语言 时间:
2015-02-19 09:37:50
阅读次数:
205
转载地址:http://dacoolbaby.iteye.com/blog/1955427一致疏于JAVA IO方面的基础学习。这次在使用到HDFS的文件接口的时候,就遇到这方面的问题。于是巩固一下基础。java io是典型的decorator设计模式。Path path = new Path(“路...
分类:
其他好文 时间:
2015-02-13 11:30:12
阅读次数:
126
一、简介 装饰(Decorator)模式被称为包装(Wrapper)模式。 装饰模式以对客户端透明的方式扩展对象的功能,是继承关系的一个替代方案。并可以在不创造更多子类的情况下,将对象的功能加以扩展。 装饰模式有如下特点:装饰对象和真实对象有相同的接口。这样客户端对象就可以 以和真实对象相同的方.....
分类:
其他好文 时间:
2015-02-11 20:26:28
阅读次数:
206
装饰者模式:就是用来装饰别的类的,可以理解成 加油添醋(或锦上添花····)面条,可以是牛肉面、鸡蛋面、·····等等,转换成java代码就是: 面条 --- 抽象类 Noodle; 牛肉面 ---- BeefNoodles; 瘦肉面 ---- MeatNoodles; ````````...
分类:
其他好文 时间:
2015-02-09 20:05:10
阅读次数:
180
python decorator心得体会
前言
用途
给方法添加新的功能
给类增加或者删除方法
参数化的decorator
更改方法的默认调用行为
2和3的整合
其实1和4可以归为一类特性,都是对现有方法的增强。
前言此小短文来源于qq群一位朋友的问题,问题如下:下面这段代码的功能是什么?
def log(func):
def wrapper(*args, **kw):...
分类:
编程语言 时间:
2015-02-08 15:30:26
阅读次数:
141
java设计模式-------装饰者模式
装饰者模式
Decorator模式(别名Wrapper):动态将职责附加到对象上,若要扩展功能,装饰者提供了比继承更具弹性的代替方案。主要有组件(components)和装饰器(Decorator)组成。要求components和Decorator实现相同的接口或者抽象类(具体类的局限性太大)。...
分类:
编程语言 时间:
2015-02-03 21:25:47
阅读次数:
241
简单:Abstract Factory (3.1)Adapter (4.1)Composite (4.3)Decorator (4.4)Factory Method (3.3)Observer (5.7)Strategy (5.9)Template Method (5.10)设计模式编目:Abstr...
分类:
其他好文 时间:
2015-02-02 19:35:22
阅读次数:
132
装饰模式就是给一个对象增加一些新的功能,而且是动态的,要求装饰对象和被装饰对象实现同一个接口,装饰对象持有被装饰对象的实例,关系图如下:Source类是被装饰类,Decorator类是一个装饰类,可以为Source类动态的添加一些功能,代码如下:[java]view plaincopypublici...
分类:
其他好文 时间:
2015-02-02 12:03:58
阅读次数:
116
所有的说明和解释都在代码中有注释来标明
package mode.decorator;
/**
*
* 这里定义一个接口,在接口中定义我们要执行的操作。
*
* 以后所有的装饰器以及我们要装饰的对象都要实现这个接口。有了这样的大前提,我们就可以其用 Sourcable来定义我们的装饰器和要装饰的对象了
*
* */
public interface Sourcable...
分类:
其他好文 时间:
2015-01-30 23:00:26
阅读次数:
345
django程序,需要写很多api,每个函数都需要几个装饰器,例如
@csrf_exempt
@require_POST
def foo(request):
pass
既然那么多个方法都需要写2个装饰器,或者多个,有啥办法把多个合并成一行呢?
上面的函数执行过程应该是
csrf_exempt(require_POST(foo))
修改成
def compose(*...
分类:
编程语言 时间:
2015-01-30 17:46:10
阅读次数:
156