Skip to content

Latest commit

 

History

History
19 lines (10 loc) · 829 Bytes

装饰者模式.md

File metadata and controls

19 lines (10 loc) · 829 Bytes

JavaScript设计模式 - 装饰者模式

每日一话:老虎不发威,你当我对象吧

概念

装饰者模式可以动态地给某个对象添加一些额外的职责,而不会影响从这个类中派生的其他对象

一般来说我们给对象添加功能常使用继承的方式,但主要存在两方面问题:

1、超类和子类之间存在强耦合性。同时,继承通常被称为“白箱复用”,“白箱”是相对可见性而言的,超类的内部细节是对子类可见的,继承常常被认为破坏了封装性

2、在完成一些功能复用的同时,有可能创建出大量的子类,使得子类的数量呈爆炸性增长

装饰者模式能够在不改变对象自身的基础上,给对象动态地添加职责,比继承更为轻便

代码

说明