23种设计模式(十)装饰者模式(阁瑞钛伦特软件-九耶实训)

我也常说的设计模式是23种设计模式,分为3大类:

  • 创建型模式5种:工厂方法、抽象工厂、单例、建造者、原型
  • 结构型模式7种:适配器、代理、桥接、装饰者、外观、享元、组合
  • 行为型模式11种:模板方法、解释器、策略、观察者、迭代器、职责链、命令、备忘录、状态、访问者、中介者。

        上次咱们说了“桥接模式”。今天咱们聊一聊结构型模式中的“装饰者模式”。

结构型模式重点在于结构的变化。

 

“装饰者模式”关键在于“装饰”,也就是在原有基础上,增加功能方法的结构设计。

接口

接口的实现类

如果以上作为“核心操作”。下面就要写“装饰”的结构了。

先建立一个抽象类实现接口,并实现接口中的实现方法(operation)。抽象类里组建了使用接口的属性,通过构造函数执行赋值对象。(Component com属性)。

抽象类里用到了“operation()”方法“递归”操作,如果你能仔细看,它的操作,只是不断的调用com对象的方法。当“装饰”里没有组件的Component属性的对象了就不会去调用了。为的是多重的“装饰”的解析而准备的。

装饰器的实现类ConcreteDecoratorA

 

装饰器的实现类ConcreteDecoratorB

 

在使用的时候  ConcreteDecoratorB的对象装饰ConcreteDecoratorA的对象装饰ConcreteComponent对象。调用operation()方法后,由于递归的作用有多少层次的装饰就有多少层的输出。这样装饰的功能一一展现。

 

今天设置一个场景,“孙悟空”的七十二变,变什么像什么,变成鸟它会飞,变成鱼它会游,但是无论变成生么都改不了猴子的本质。我们用装饰者模式来体现这一个过程。

 

“王”的接口,设置了类型的属性,和变化的抽象行为。 

 

 

实现接口的猴王类。

 

孙悟空拥有七十二变的能力,这一能力就是“装饰器”体现。

 

 

实现可装饰的鱼

 

 

实现可装饰的鸟

 

实现调用,孙悟空的对象为“核心对象”,装饰成鸟,再装饰成鱼,再装饰成鸟,可以飞。

 

 

 但是实际仍然是猴

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值