深入理解JavaScript设计模式之基础知识
2023-12-09 13:19:36
JavaScript设计模式之基础知识
导语
对于很多人来说,设计模式是一个很陌生的词汇,即使在从事开发工作很多年的人来说也不见得有多么的熟悉,在实际开发中也极少真正的用到设计模式。它更像是软件工程领域的一个理论知识,给人的感觉是“懂的人很懂,不懂的人根本就不知道它是什么”。
今天本文主要面向那些不太熟悉设计模式或者正想初步了解设计模式的朋友,介绍一下设计模式的基本知识。
为了将要开始的设计模式介绍与应用,文章将对面向对象和几大设计原则做一个基础知识介绍,为后面的设计模式学习打好基础。
一、设计模式简介
设计模式是一套被反复使用的、经过分类的软件设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。
设计模式使代码编制真正工程化,设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经验的积累,使我们能够学习前人的经验,用正确的方法用代码去解决问题。设计模式针对的是一些经常出现的问题,而不是针对一些偶发的、特殊的或不常出现的问题。
比如有一个需求,实现一个按钮组件,当点击该按钮时,按钮背景色会发生改变。在设计实现时,我们可以定义一个类,该类中有一个成员变量来存储按钮的背景色,有一个点击事件处理函数,当点击按钮时,调用该函数,在该函数中将按钮的背景色改变。
此时如果我们还想实现另外一个类似的按钮,比如一个文字按钮,当点击该按钮时,按钮文本颜色发生改变,此时我们依然可以定义一个类,该类中有一个成员变量来存储按钮的文本颜色,有一个点击事件处理函数,当点击按钮时,调用该函数,在该函数中将按钮的文本颜色改变。
此时我们发现,两个按钮组件实现非常相似,我们完全可以将这两个按钮组件抽象出一个父类,将两个按钮组件的相同代码放到父类中,将不同代码放到子类中。此时我们再实现一个按钮组件时,只需要继承父类,然后在子类中实现不同代码即可。
这种设计方式就是设计模式中非常有名的**“模板模式”** 。
二、面向对象
在了解设计模式之前,我们需要先了解面向对象,面向对象是一种编程范式,它将数据和行为组织成对象。
对象是一个独立的实体,它可以有自己的数据和行为,对象之间可以通过消息传递进行通信。面向对象编程是一种非常流行的编程范式,它被广泛用于软件开发中。
三、设计原则
在面向对象编程中,有几大设计原则非常重要,这些设计原则包括:
- 单一职责原则(SRP) :一个类应该只负责一项职责,一个职责应该由一个类来完成。
- 开闭原则(OCP) :一个软件实体应该对扩展开放,对修改关闭。
- 里氏替换原则(LSP) :子类型必须能够替换其父类型。
- 依赖倒置原则(DIP) :高层模块不应该依赖低层模块,两者都应该依赖于抽象。
- 接口隔离原则(ISP) :客户端不应该依赖它不需要的接口。
这些设计原则非常重要,它们可以帮助我们编写出更好的代码。
四、总结
设计模式是一套被反复使用的、经过分类的软件设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。
设计模式使代码编制真正工程化,设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。
设计模式针对的是一些经常出现的问题,而不是针对一些偶发的、特殊的或不常出现的问题。