curTain

手写一个装饰器模式。

1. 介绍

装饰器模式的目的:

  1. 为对象添加新功能
  2. 不改变其原有的结构和功能

2. 代码演示

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
class Circle {
draw() {
console.log("画一个圆形");
}
}

class Decorator {
constructor(circle){
this.circle = circle;
}
draw() {
this.circle.draw();
this.setRedBorder(this.circle);
}
setBorder(circle) {
console.log("设置边框")
}
}

// 测试代码
let circle = new Circle();
let dec = new Decorator(circle);
dec.setRedBorder();

3. 总结

装饰器小情景:手机又照相的功能,我们可以在手机摄像头前装饰一个放大镜,手机在具有照相的基础还有放大的功能。

本质:在执行真正的操作前后,可以进行其他的操作

4. 参考材料

装饰者模式

JS设计模式-装饰器模式


 评论