结构型模式
装饰器模式
装饰器模式:为对象添加新功能且不改变原有的结构和功能
对于装饰器模式可以理解为我们在使用手机时可以为它加上一个手机壳作为装饰,起到保护手机的作用但并不会影响手机原来的功能。下面代码是一个装饰器模式的举例
适配器模式
适配器模式:旧接口格式和使用者不兼容,中间加一个适配转换接口。
举一个生活中的例子你买一个显示屏只支持DVI接口但是你的电脑只有HDMI接口这时候就需要一个转接器来连接,这个转接器就是我们所说的适配器。下图代码就是简单的适配器模式的举例:
使用场景一般是用在封装旧接口
代理模式
代理模式:使用者无权访问目标对象,中间加代理,通过代理做授权和控制
举一个例子:小明喜欢小红,但是小明不好意思把礼物自己送给小红,所以就委托给小红的好闺蜜小绿,让小绿代替小明将礼物送给小红。这就是生活中一个简单的代理模式,实现如下图代码:
应用场景有:我们前端开发人员经常用的事件委托,ES6中的Proxy
这就是一个经典的明星代理案例