设计模式
yakunyang(2016)
入坑2016,留下一些日志,做留恋流年
展开
-
装饰者模式、发布订阅模式
// 发布订阅模式、 装饰者模式//在不改变原来的对象的基础上,添加新的属性或者方法// ES7 中的装饰者,借助了 object.defineProperty Object.defineProperty(obj, prop, descriptor)// obj:要在其上定义属性的对象。// prop:要定义或修改的属性的名称。// descriptor:将被定义或修改的属性描述符。// 返回值:被传递给函数的对象。// 装饰器只能用于类和类的方法,不能用于函数,因为存在函.原创 2020-08-24 18:07:15 · 149 阅读 · 0 评论 -
乔接模式
// 乔接模式。// 桥接模式(Bridge)将抽象部分与它的实现部分分离,使它们都可以独立地变化。// 其实就是函数的封装,比如要对某个DOM元素添加color和backgroundColor,可以封装个changeColor函数// 同将抽象和实现也进行了充分的解耦,也有利于分层class Speed { // 运动模块constructor(x, y) {this.x = xthis.y = y}run() { console.log(`运动起来 ${thi.原创 2020-08-24 14:54:53 · 111 阅读 · 0 评论 -
适配器模式的应用以及惰性函数
// 适配器模式的应用以及惰性函数// 外观模式(Facade)为子系统中的一组接口提供了一个一致的界面,此模块定义了一个高层接口,这个接口值得这一子系统更加容易使用。// 外观模式经常被用于JavaScript类库里,通过它封装一些接口用于兼容多浏览器// demo1 适配器可以结合//// 简化写法function addEvent (type, el, fn) {if (window.addEventListener) {el.addEventListener(ty.原创 2020-08-24 14:44:57 · 110 阅读 · 0 评论 -
整理历史知识-设计模式-单例模式
// 单个例子的模式 demo1function singleCase (name){this.name = name;}singleCase.prototype.sayHi = function(){alert(this.name);}let getInstance = (function(){var instance = null;return function(name) {if(!instance) { //相当于一个一次性阀门,只能实例化一次instan原创 2020-08-24 11:54:34 · 106 阅读 · 0 评论 -
js设计模式-之- 策略模式
<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta http-equiv="X-UA-Compa...原创 2019-05-27 12:17:25 · 118 阅读 · 0 评论