ITPub博客

首页 > IT职业 > IT职场 > js中介者模式的优缺点比较

js中介者模式的优缺点比较

IT职场 作者:longbow 时间:2021-09-11 09:53:39 0 删除 编辑

1、优点,中介模式使各对象能够解耦,用中介与对象之间的一对多关系取代了对象之间的网状多对多关系。

各对象只要注重自身的功能实现,对象之间的关系就交给中介来实现和维护。

2、缺点,是系统中会增加一个中介对象,难以维护。

因为对象之间交互的复杂性已经转化为中介对象的复杂性,使得中介对象往往庞大。

一般而言,如果物体之间的复杂耦合确实导致调用和维护困难,并且这些耦合随着项目的变化呈指数增长,那么我们可以考虑使用中介模式重构代码。

实例

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>中介者模式 购买商品</title>
</head>
<body>
    选择颜色:
    <select id="colorSelect">
        <option value="">请选择</option>
        <option value="red">红色</option>
        <option value="blue">蓝色</option>
    </select>
 
    输入购买数量:
    <input type="text" id="numberInput">
 
    您选择了颜色:<div id="colorInfo"></div><br>
    您输入了数量:<div id="numberInfo"></div><br>
 
    <button id="nextBtn" disabled>请选择手机颜色和购买数量</button>
    
</body>
<script>
 
// 最初级的写法
var colorSelect = document.getElementById('colorSelect'),
    numberInput = document.getElementById('numberInput'),
    colorInfo = document.getElementById('colorInfo'),
    numberInfo = document.getElementById('numberInfo'),
    nextBtn = document.getElementById('nextBtn');
 
var goods = {
    'red': 3,
    'blue': 6
}
 
colorSelect.onchange = function(){
    var color = this.value,
        number = numberInput.value,
        stock = goods[color]
 
    colorInfo.innerHTML = color;
 
    if(!color){
        nextBtn.disabled = true;
        nextBtn.innerHTML = '请选择手机颜色';
        return;
    }
 
    if( ( (number-0) | 0 ) !== number-0 ){      //用户输入的购买数量是否为正整数
        nextBtn.disabled = true;
        nextBtn.innerHTML = '请输入正确的购买数量';
        return;
    }
 
    if(number > stock){     //当前选择数量大于库存量
        nextBtn.disabled = true;
        nextBtn.innerHTML = '库存不足';
        return;
    }
 
    nextBtn.disabled = false;
    nextBtn.innerHTML = '放入购物车';
}
 
numberInput.oninput = function(){
    var color = colorSelect.value,
        number = this.value,
        stock = goods[color]
 
    colorInfo.innerHTML = color;
 
    if(!color){
        nextBtn.disabled = true;
        nextBtn.innerHTML = '请选择手机颜色';
        return;
    }
 
    if( ( (number-0) | 0 ) !== number-0 ){      //用户输入的购买数量是否为正整数
        nextBtn.disabled = true;
        nextBtn.innerHTML = '请输入正确的购买数量';
        return;
    }
 
    if(number > stock){     //当前选择数量大于库存量
        nextBtn.disabled = true;
        nextBtn.innerHTML = '库存不足';
        return;
    }
 
    nextBtn.disabled = false;
    nextBtn.innerHTML = '放入购物车';
}
 
 
</script>
</html>

以上就是js中介者模式的优缺点比较,希望对大家有所帮助。更多js学习指路:js教程

推荐操作环境:windows7系统、jquery3.2.1版本,DELL G3电脑。

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/1696/viewspace-2829674/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2019-04-15

  • 博文量
    95
  • 访问量
    561