javascript----放大模式

Posted on 2020-05-19 21:56  张雪冬前端学习园地  阅读(597)  评论(0编辑  收藏  举报

放大模式

 

 

1.介绍放大模式降低模块之间直接的联系,降低耦合,当一个模块出现错误,不会影响另一个模块的功能

 

// A模块的功能自己执行自己的代码

function Moduel2 () {

    this.fn = function () {
        console.log('A模块功能执行')
    }
}

let A = new Moduel2()

A.fn()



// 此时有模块B想使用模块A的某些功能或者属性,但是我们要降低耦合不能直接去使用模块A,此时再定义一个闭包


// 会返回一个新的模块A,并且在新的模块中定义了一个请求数据的方法
let Moduel = (function (mod) {

        mod.getData = function () {

            return { data: [{ name: '小美' }, { name: '小兰' }, { name: '兰馨' }], code: 200, message: '获取成功' }
        }
        
        return mod
})(Moduel2)




function Moduel3 (name) {

    // 初始化一下新模块A
    this.mod = Moduel
}


// 调用模块A的或者数据方法,将数据渲染到页面上,充分的降低了模块之间的耦合度

Moduel3.prototype.renderData = function () {
        let user = this.mod.getData()
        let li = null
        let fragment = document.createDocumentFragment()
        user.data.forEach(item => {
            li = document.createElement('li')
            li.innerHTML = item.name
            fragment.appendChild(li)
        })
        document.getElementById('list').appendChild(fragment)
}

let B = new Moduel3()

B.renderData()