JavaScript设计模式-外观模式(17)

简介: JavaScript设计模式-外观模式(17)

外观设计模式可以使方法保持简洁而不繁重,不需要去处理过多的工作量。它在做一些重新设计和重构代码工作时十分受用,当你想使用一个不同的实现来替换掉某一个对象时,可能会需要很长时间去完成一个复杂的对象,同时之前使用该对象的方法也会被重新编写,此时我们可以先想好新的方法,旧对象结合外观设计模式使用,在完全替换掉旧对象的时候,我们只需要修改少量代码就可以进行使用了


外观设计模式在生活中的应用就是我们程序员启动电脑的操作,我们看到的是按下电脑电源开关电脑就启动了,实际上电脑内部做些很多事情来实现电脑的开机操作,我们能通过简洁的操作实现电脑开机,我们可以看做成电脑电源开关是电脑对外提供给我们的开机方法


外观设计模式在实际业务中也是十分常见的,例如:阻止默认事件,我们来实现一下

我们平常需要阻止的默认事件是阻止事件冒泡到父节点和阻止浏览器执行默认行为

//阻止事件冒泡到父节点
function stop1(event){
event.stopPropagation()
}
//阻止浏览器默认行为:a标签的跳转链接和from表单的默认提交行为
function stop2(event){
event.preventDefault()
}

这俩个阻止默认行为是相互独立的方法,但是也经常被一块调用,所以为了我们能够在不同的业务功能中重复调用阻止浏览器默认行为,我们可以对它使用外观设计模式


声明一个对象,该对象有一个stop方法,stop方法中接受event对象,在stop方法内部通过if语句的方式进行判断是否拥有默认事件方法,如果拥有则进行阻止

const STOPEVENT =  {
    stop(event) {
        //阻止浏览器默认行为
        if (typeof (event.preventDefault === "function")) {
            event.preventDefault();
        }
        //阻止事件冒泡到父节点
        if (typeof (event.stopPropagation == "function")) {
            event.stopPropagation();
        }
    }
};

外观设计模式能够很好的减少代码的复杂性,减少了对方法内部的修改,提高了代码的可维护性


坚持努力,无惧未来!

相关文章
|
2月前
|
设计模式 JavaScript 前端开发
JavaScript设计模式--访问者模式
【10月更文挑战第1天】
33 3
|
3月前
|
设计模式 Java
Java设计模式-外观模式(11)
Java设计模式-外观模式(11)
|
2月前
|
设计模式 Java
Java设计模式之外观模式
这篇文章详细解释了Java设计模式之外观模式的原理及其应用场景,并通过具体代码示例展示了如何通过外观模式简化子系统的使用。
32 0
|
4月前
|
设计模式 存储 Java
【九】设计模式~~~结构型模式~~~外观模式(Java)
文章详细介绍了外观模式(Facade Pattern),这是一种对象结构型模式,通过引入一个外观类来简化客户端与多个子系统之间的交互,降低系统的耦合度,并提供一个统一的高层接口来使用子系统。通过文件加密模块的实例,展示了外观模式的动机、定义、结构、优点、缺点以及适用场景,并讨论了如何通过引入抽象外观类来提高系统的可扩展性。
【九】设计模式~~~结构型模式~~~外观模式(Java)
|
4月前
|
设计模式 JavaScript 前端开发
从工厂到单例再到策略:Vue.js高效应用JavaScript设计模式
【8月更文挑战第30天】在现代Web开发中,结合使用JavaScript设计模式与框架如Vue.js能显著提升代码质量和项目的可维护性。本文探讨了常见JavaScript设计模式及其在Vue.js中的应用。通过具体示例介绍了工厂模式、单例模式和策略模式的应用场景及其实现方法。例如,工厂模式通过`NavFactory`根据用户角色动态创建不同的导航栏组件;单例模式则通过全局事件总线`eventBus`实现跨组件通信;策略模式用于处理不同的表单验证规则。这些设计模式的应用不仅提高了代码的复用性和灵活性,还增强了Vue应用的整体质量。
59 1
|
4月前
|
设计模式 JavaScript 前端开发
小白请看 JS大项目宝典:设计模式 教你如何追到心仪的女神
小白请看 JS大项目宝典:设计模式 教你如何追到心仪的女神
|
5月前
|
设计模式 JavaScript Go
js设计模式【详解】—— 状态模式
js设计模式【详解】—— 状态模式
83 7
|
5月前
|
设计模式 JavaScript
js设计模式【详解】—— 桥接模式
js设计模式【详解】—— 桥接模式
73 6
|
5月前
|
设计模式 JavaScript
js设计模式【详解】—— 原型模式
js设计模式【详解】—— 原型模式
53 6
|
5月前
|
设计模式 JavaScript 算法
js设计模式【详解】—— 模板方法模式
js设计模式【详解】—— 模板方法模式
48 6