前端学习总结(十四)javascript设计模式

一 什么是设计模式

设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。 使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。

二 设计原则

要学会设计模式,首先要了解设计模式所依托的设计原则:

(1)单一职责原则(SRP原则):一个对象(方法)只做一件事情。
运用的设计模式:代理模式,单例模式,装饰者模式等。

(2)最少知识原则(LKP原则):一个软件实体应当尽可能少地与其他实体发生相互作用。软件实体是一个广义的概念,不仅包括对象,还包括系统,类,模块,函数,变量等。
最少知识原则要求我们在设计程序时,应当尽量减少对象之间的交互,一个对象应尽可能少的了解其他对象。

运用的设计模式:中介者模式,外观模式等

(3)开闭原则(开放-封闭原则/OCP原则):软件实体(类,模块,函数)等应该是可以扩展的,但是不可修改。

运用的设计模式:发布-订阅模式,模板方法模式,策略模式,代理模式,职责链模式等。

(4)里氏转换原则:子类继承父类,单独掉完全可以

(5)依赖倒转原则:引用一个对象,如果它有底层对象,直接调用底层。

(6)合成/聚合复用原则:新的对象应尽可能使用一些已有的对象,使之成为新对象的一部分

(7) 接口隔离原则。不应该强迫客户依赖没有使用的接口。有个问题是,JS中没有显式的接口,不过我们有方法绕过。

SOLID设计原则请参考: http://www.infoq.com/cn/news/2014/01/solid-principles-javascript

三 常用设计模式

(1)单体(Singleton)模式(单例模式): 绝对是JavaScript中最基本最有用的模式。

单例概念:保证一个类只有一个实例

实现的方法:先判断实例存在与否,存在直接返回,不存在就创建了再返回,这确保一个类只有一个实例对象。

用途:
a.用来划分命名空间,从全局命名空间里提供一个唯一的访问点来访问该对象。
b.实现模块内部保护,模块之间通信
  
优点:可以减少网页中全局变量的数量(在网页中使用全局变量有风险);可以在多人开发时避免代码的冲突(使用合理的命名空间)等。

使用注意事项:

a.this的使用
b.闭包容易造成内存泄漏,不需要赶快处理掉
c.注意new的成本(继承)

实例:

<script>
    //top模块(与下面的banner模块是独立的命名空间,互不干扰(自己保护自己),相互可以通信)
    var top = {
        init: function () {
   
            //先绑定dom元素
            this.render();
            //再为dom元素绑定事件
            this.bind();
        },
        a: 4, //想传递的量
        //render 把所有的dom元素放在这里边
        render: function () {
   
            var me = this;
            me.btn_a = $('#a');
        },
        //bind 给元素绑定事件
        bind: function(){
   
  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值