理解JavaScript设计模式

设计模式 应该是分开的,从设计到模式。设计就是按照一种思路或标准来实现功能,相同功能可以有不同设计方案来实现。

五大设计原则:

  • S(Single):单一职责原则。一个程序只做好一件事,如果功能过于复杂就拆分开,每个部分保持独立。
  • O(Open):开放封闭原则。对扩展开放,对修改封闭。增加需求时,扩展新代码而非修改已有代码。
  • L(Liskov人名):李氏置换原则。子类能覆盖父类,父类能出现的地方子类就能出现,JS中使用较少(弱类 & 继承使用较少)。
  • I(Interface):接口独立原则。保持接口的单一独立,类似单一职责原则,这里更关注接口。
  • D(Dependence):依赖导致原则。开发的时候用抽象化编程而不是具体,JS用的较少。

用 promise 来说明 S O:

function loadImg(src){
    let promise = new Promise((resolve,reject) => {
        let img = document.createElement('img');
        img.onload = function(){
            resolve(img);
        };
        img.onerror = function(){
            reject('图片加载失败');
        }
        img.src = src;
    });
    return promise;
}

let src = "https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1567141586897&di=61c49ae4eeaf8b0e383924e3a2ab0058&imgtype=0&src=http%3A%2F%2Ff.hiphotos.baidu.com%2Fimage%2Fpic%2Fitem%2Fb151f8198618367aa7f3cc7424738bd4b31ce525.jpg";

let result = loadImg(src); // result 的值是一个 promise

result.then((img) => {
    console.log(`width: ${img.width}`);
    return img;
}).then(img => {
    console.log(`height: ${img.height}`);
}).catch(ex => {
    console.log(ex);
})

  • 单一职责原则:每个then中的逻辑只做好一件事;
  • 开放封闭原则:如果新增需求,扩展then就行了;

设计准则:

  • 小即是美
  • 让每个程序员只做好一件事
  • 快速建立原型
  • 舍弃高效率而去可移植性
  • 采用纯文本来存储数据
  • 充分利用软件的杠杆效应(软件复用)
  • 避免强制性的用户界面
  • 各部分之和大于整体

23种设计模式具体demo地址:
JavaScript中 23种设计模式

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值