js 五大设计原则

// 设计原则
  // 何为设计?
    // 描述 -- 按照一种思路或者标准来实现功能,功能相同,可以有不同设计方案来实现
    // 伴随着需求增加,设计的作用才能体现出来
  // 五大设计原则
    // SOLID 五大设计原则
      // S - 单一职责原则
        //一个程序只做好一件事
        //如果功能过于复杂就拆分开,每个部分保持独立
      // O - 开放封闭原则
        //对扩展开放,对修改封闭
        //增加需求时,扩展新代码,而非修改已有代码
      // L - 李氏置换原则
        //子类能覆盖父类
        //父类能出现的地方子类就能出现
        //js中使用较少(弱类型&继承使用较少)
      // I - 接口独立原则
        //保持接口的单一独立,避免出现“胖接口”
        //js中没有接口(typescript例外),使用较少
      // D - 依赖倒置原则
        //面向接口编程,依赖于抽象而不依赖具体
        //使用方只关注接口而不关注具体类的实现
        //js中使用较少(没有接口&弱类型)


// 《UNIX/LINUX设计哲学》
  // 准则1:小即是美
  // 准则2:让每个程序只做好一件事
  // 准则3:快速建立原型
  // 准则4:舍弃高效率而取可移植性
  // 准则5:采用纯文本来存储数据
  // 准则6:充分利用软件的杠杆效应(软件复用)
  // 准则7:使用shell脚本来提高杠杆效应和可移植性
  // 准则8:避免强制性的用户界面
  // 准则9:让每个人程序成为过滤器
// 《UNIX/LINUX设计哲学》--小准则
  // 小准则:允许用户定制环境
  // 小准则:尽量是操作系统内核小而轻量化
  // 小准则:适应小写字母并尽量简写
  // 小准则:沉默是金
  // 小准则:各部分之和大于整体
  // 小准则:寻求90%的解决方案


// 单一职责原则和开放封闭原则
function loadImg(src){
  let promise = new Promise(function(resolve,reject){
    let img = document.createElement('img')
    console.log(img)
    img.onload = function (){
      resolve(img)
    }
    img.onerror = function(){
      reject("图片加载失败")
    }
    img.src = src
  })
  return promise
}

let src = 'https://www.baidu.com/img/bd_logo1.png?where=super';
let result = loadImg(src)
  console.log(result)
  result.then(function(img){
    alert(`width:${img.width}`)
    return img
  }).then(function(img){
    alert(`height:${img.height}`)
    return img
  }).then(function(img){
    alert(img.src)
  }).catch(function(ex){
    alert(ex)
})

posted @ 2018-08-16 13:58  红尘陌上,独自行走  阅读(963)  评论(0编辑  收藏  举报