设计模式之装饰模式

装饰模式的定义:动态的给一个对象添加一些额外的职责。就增加功能来说,装饰模式相比生成子类更为灵活。

装饰模式的示例图如下:

如图所示,主要包括四个部分:

1、Component抽象组件,是一个接口或者抽象类,就是定义我们最核心的对象,也就是最原始的对象。

2、ConcreteComponent具体组件,最核心、最原始、最基本的接口或抽象类的实现,即Component的实现。

3、Decorator装饰角色,一般是一个抽象类,其实现或继承Component,它的属性里必然有一个Component类型的private变量。

4、具体装饰角色,如图ConcreteDecoratorA和ConcreteDecoratorB。

在Decorator类型,方法的并未正在的实现,而是调用ConcreteComponent中的方法,ConcreteComponent类型才是方法的具体实现,类似于代理模式。

ConcreteDecoratorA和ConcreteDecoratorB类继承Decorator类,继承其方法并继续扩张,即装饰其他的特有的东西。

Android中Context的设计模式即是这种装饰模式:

android.content.Context是Componet抽象组件,android.app.ContextImpl继承Context类,具体实现其方法,实现应用与android框架层服务的连接沟通。

android.app.ContextWrapper即Decorator,ContextThemeWrapper继承ContextWrapper,实现Activity主题,Activity即具体装饰角色,扩充方法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值