![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设计模式
文章平均质量分 84
青灯夜游/
An inch of gold will not buy an inch of time.
展开
-
JavaScript设计模式之“策略模式”(二)
其实策略模式已经在JavaScript这种高度函数化编码的语言中潜移默化的植入了,想必大家一定用过高阶函数吧,就是那种返回值是一个函数,或者传入的参数是一个函数的那种用法,是不是和策略模式很像呢,传入的函数参数就是一个策略,他可以通过不同的封装移植到不同的地方,不同的函数也可以返回不同的结果。当时我们的考虑是,根据自身的情况然后选择合适的方式吧,但是,我们必须得知道所有可能的路线,最后选择最优的那个方式吧,这就是策略模式的比较核心的缺点,我们不得不知道有哪些策略,如果一个输入项的校验不止一条规则怎么办?..原创 2022-07-28 18:40:24 · 204 阅读 · 0 评论 -
JavaScript设计模式之“策略模式”(一)
在实现JavaScript版本之前,仔细理解这段代码,很容易观察到,在传统面向对象语言中,为什么不讲这些个策略类封装成一个对象呢,因为传统面向对象语言创建较为繁琐,还需要先创建一个构造类再来创建对象封装策略类,那么熟悉JavaScript的小伙伴就清楚了,在JavaScript中我们直接很容易的就能创建一个空对象,然后用键值对封装每个每个策略类,所以,我们直接上代码,看起来比传统代码清晰多了。这段话就很好的诠释了什么是策略模式,就是对于一个问题,我们可以提供多种手段去解决,而且最终的结果都是期望的结果。..原创 2022-07-27 23:44:18 · 320 阅读 · 0 评论 -
JavaScript设计模式之“单例模式“
这里大家可能会觉得很奇怪,我明明说了上面的传统方式在JavaScript中不适用,为何在这又说就是以上代码的实现就是JavaScript中的单例模式,这里主要讲的其实是设计思路,与代码无关,由于JavaScript是无类的语言,所以无法写出类语言那种的形式,只是做了大概的模拟,本质上的代码实现还是JavaScript代码,仔细观察也不难看出,上面的代码就是用到了闭包创建私有变量的形式来保存构建好的单例的,也使用了原型链来模拟类中的静态方法,所以大家不必疑惑。...原创 2022-07-27 13:19:39 · 514 阅读 · 0 评论