装饰器模式

  为对象添加新功能,不改变其原有的结构和功能,和适配器模式不一样,适配器模式是原有的不能用了,而装饰器模式是原来的还能用,不过给增加一些功能。
  比如: 手机壳,用来给手机美观,保护,防滑等等

例子:

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

class Decorator {
constructor(circle){
this.circle = circle;
}
draw() {
this.circle.draw();
this.setRedBorder(this.circle);
}
setRedBorder(circle) {
console.log("设置红色边框")
}
}
// 测试代码
let circle = new Circle();
circle.draw()

let dec = new Decorator(circle);
dec.draw();