在阎宏博士的《JAVA与模式》一书中开头是这样描述装饰(Decorator)模式的: 装饰模式又名包装(Wrapper)模式。装饰模式以对客户端透明的方式扩展对象的功能,是继承关系的一个替代方案。装饰模式的结构(使用组合) 装饰模式以对客户透明的方式动态地给一个对象附加上更多的责任。换言之,客户.....
分类:
其他好文 时间:
2014-09-29 22:42:32
阅读次数:
231
1.策略模式(Strategy): 定义了算法家族, 分别封装起来, 让它们之间可以互相替换. 比如Collections.sort(List list, Comparator c); 可以通过实现多个Comparator接口来达到多种排序的目的. 2.装饰着模式(Decorator): 动态的给一...
分类:
Web程序 时间:
2014-09-28 10:00:41
阅读次数:
260
Java设计模式中有一种设计模式可以动态的给一个类添加附加功能,并对于客户端透明,如果可附加的功能有多个,还可以对附加功能随便组合。这种设计模式就是装饰模式(Decorator Pattern),装饰模式在Java 的I/O中也用到了。也许你会说,添加功能的话,也可以通过继承父类来实现,但……
分类:
其他好文 时间:
2014-09-24 18:03:47
阅读次数:
214
《大话设计模式》的装饰模式的C++实现。
结构图:
Decorator.h:
#ifndef _DECORATOR_H
#define _DECORATOR_H
#include
#include
using namespace std;
//ConcreteComponent类
class CPerson
{
public:
CPerson(){};
CPerson(s...
分类:
编程语言 时间:
2014-09-22 21:09:33
阅读次数:
240
在前面我写了《如何在spring框架中解决多数据源的问题》,通过设计模式中的Decorator模式在spring框架中解决多数据源的问题,得到了许多网友的关注。在与网友探讨该问题的过程中,我发现我的方案并不完善,它只解决了一部分问题。 总结多数据源的问题,其实它需要分为以下三种情况:各个数据源...
分类:
编程语言 时间:
2014-09-22 02:23:52
阅读次数:
231
Componet:组件类,被装饰的对象(例如:生物)
ConcreteComponent:具体的组件类
Decorator:装饰器类,继承组件类同时组合一个组件类
ConcreteDecorator:具体的装饰器类,具体装饰器类的操作都是对于被组合的组件类进行操作的。
分类:
其他好文 时间:
2014-09-19 17:08:55
阅读次数:
227
Decorator模式:动态将职责附加到对象上,若要扩展功能,装饰者提供了比继承更具弹性的代替方案。一.基本概念:1.设计原则:(1)多用组合,少用继承。利用继承设计子类的行为,是在编译时静态决定的,而且所有的子类都会继承到相同的行为。然而,如果能够利用组合的做法扩展对..
分类:
其他好文 时间:
2014-09-18 16:58:54
阅读次数:
141
一、结构型模式结构型设计模式是从程序的结构上解决模块之间的耦合问题(好像是句废话),GoF23种设计模式中结构型设计模式有7种,分别是:Adapter适配器模式、Bridge桥接模式、Composite组合模式、Decorator装饰模式、Facade外观模式、Flyweight享元模式和Proxy...
分类:
其他好文 时间:
2014-09-14 17:53:37
阅读次数:
236
本文主要记录自己对几个高级语法概念的理解:匿名函数、lambda表达式、闭包、装饰器。
这几个概念并非Python特有,但本文只限于用Python做说明。
1. 匿名函数
匿名函数(anonymous function)是指未与任何标识符绑定的函数,多用在functional
programming languages领域,典型应用场合:
1) 作为参数传给高阶函数(higher-or...
分类:
编程语言 时间:
2014-09-12 13:36:13
阅读次数:
344
装饰器模式体现了一种“组合优于继承”的思想。当我们要动态为对象增加新功能时,装饰器模式往往是我们的好帮手。很多后期出现的 Ioc 容器都为装饰器模式提供了支持,比如说 Autofac。在 My.Ioc 中,默认不提供装饰器支持,但我们可以自己进行扩展,以提供此项功能。using System;usi...
分类:
其他好文 时间:
2014-09-11 18:46:32
阅读次数:
261