博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
常用设计模式
阅读量:5270 次
发布时间:2019-06-14

本文共 1169 字,大约阅读时间需要 3 分钟。

1.外观模式

外观模式一般用于对复杂底层代码的封装,暴漏一个高级的统一接口,解决一些类似浏览器兼容性的问题。

    
Document
test

 

 css内联样式值的获取也存在IE9-的兼容性问题

// IE9-支持currentStylefunction getStyleCss(ele, cssName) {    return ele.currentStyle ? ele.currentStyle[cssName] : getComputedStyle(ele, null)[cssName]}

2. 单例模式

单例模式的应用有两种。

一种是定义命名空间,将某一类或者某一模块的方法放到一个对象中,避免声明的方法变量名称重复,也避免全局污染;

// 注意想要使用单例模式里面定义的方法,一定要使用命名空间(LyraFuncs)或者thisvar LyraFuncs = {    a: function(x,y) {    },    b: function(z) {        return LyraFuncs.a(1,2)        // 或者        return this.a(1,2)    },}

一种是惰性单例,就是对象类只允许实例化一次,并且在需要的时候再实例化。

// 比如mobx的model里的变量在多个地方会使用,并且彼此互相关联// 那么此时只需要实例化一次,而且等需要的时候再去实例化,节约系统资源var LazySingle = (function IIFE() {    let _instance = null; // 闭包,变量不会被释放掉    class Single {        constructor() {            this.a = '5';        }    }    return function() {        if (!_instance) {            _instance = new Single();        }        return _instance;    }})();// 调用的时候用法console.log(LazySingle().a); // '5'

3.适配器模式

适配器模式主要用途有两种。

1)代码更换插件或者库后,需要兼容原来的代码逻辑。

2)适配数据。当参数数据,或者后台返回的数据不是我们希望的数据时,进行数据适配,返回需要的数据格式。

 

转载于:https://www.cnblogs.com/lyraLee/p/11506749.html

你可能感兴趣的文章
CSS拾遗(二)
查看>>
smarty模板自定义变量
查看>>
研究称90%的癌症由非健康生活习惯导致
查看>>
命令行启动Win7系统操作部分功能
查看>>
ABP入门系列(6)——定义导航菜单
查看>>
PHP CURL CURLOPT参数说明(curl_setopt)
查看>>
排序sort (一)
查看>>
IOS - 真机调试
查看>>
黑苹果 安装教程
查看>>
Intent应用
查看>>
暑假周报告总结第二周
查看>>
spark源码编译,本地调试
查看>>
Spark shuffle
查看>>
Parrot虚拟机
查看>>
Linux(五)服务和进程管理
查看>>
控件练习2
查看>>
HTTPS/HTTP监听常见问题
查看>>
UIScrollView设置了contentSize后还是没办法滚动?
查看>>
VS2010常用插件介绍
查看>>
HackerRank "The Indian Job"
查看>>