设计模式:装饰模式

装饰模式(Decorator),动态的给一个对象添加一些额外的职责,如下图,此图来自:<<大话设计模式>>

 

UML类图

Component是定义一个对象接口,可以给这些对象动态的添加职责。

ConcreteComponent是定义了一个具体的对象,也可以给这个对象添加一些职责。

Decorator装饰类,继承了Component,从外类来扩展Component类的功能,但对于Component来说,是无需知道Decorator的存在的

至于ConcreteDecorator就是具体的装饰对象,起到给Component添加职责的功能

 

假设现在有一个图书馆,存有大量的书或影碟,相对于书或影碟,其本身没有出借服务,现在就可以借助装饰模式为其添加出借功能,结构图如下:此源自网上的一个例子

UML类图

各个类实现如下:

组件基类

 

具体组件类:

装饰基类: 主要输出m_pItem原有的装饰,并为具体装饰类提供接口

 

具体装饰类:位被装饰者增加额外的功能

 

主类:

 

这里还可以继续给被装饰者添加别的功能,就像Borrowable一样。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值