首页 > 编程知识 正文

常用设计模式和应用场景,单例设计模式场景

时间:2023-05-03 07:36:38 阅读:177555 作者:1104

1 .介绍3358 www.Sina.com/(singleton pattern )按设计图案为单例模式。 此类型的设计模式为最简单的设计模式之一,提供创建型模式

此模式包含一个创建自己的对象并确保只创建一个对象的单个类。 此类为创建对象的最佳方式

简而言之,就是两点钟

3358 www.Sina.com/http://www.Sina.com /单实例模式模型的思想在项目中很常见。 例如,登录框、购物车等,这些都必须是一个实例,无法获得两个登录框,最后将会同时登录进入两个账户。

传统的需要实例化该类的对象

UML图有点难懂吗? 别急,让我们来看看简单粗暴的代码演示

2 .在代码演示中,我们列举生活中的栗子。 算了,不要提心吊胆,举着她说话吧。 一般来说,好男孩的女朋友就是一个例子。 当然,很多时候会有麻烦。 当然,我必须说你爱上了一个破碎的心不一样的女孩,和她们的关系非常好。

是的,是时候发出代码了

class Girl { //是一个女孩的班级。 你可以从那么多女孩中寻找你真正的爱。 //语言当然,很快她的girl.getagirlfriend=(function () { let girlFriend; return function () if (! Girlfriend(Girlfriend=newgirl ); //恭喜你。 我取消了订单,成功交到了女朋友。 (else )//你已经有女朋友了。 我不再做了。 回到下面的还是你的现职。 (} return girlFriend; () ) ); //测试let girl friend1=girl.geta girl friend (; //女朋友let girl friend2=girl.geta girl friend (; //我想交另一个女朋友//但是,请看我发现其实我生了同样的女朋友//验证console.log (girl friend1==girl friend2)。 //打印的结果可能没有真基础的同学,看了很多括号,觉得头晕。 其实这是使用了闭包的知识

如果不用闭包,代码就是这样

//当然,很快就会有女朋友Girl.getAGirlFriend=function () { let girlFriend; return function () if (! Girlfriend(Girlfriend=newgirl ); //恭喜你。 我取消了订单,成功交到了女朋友。 (else )//你已经有女朋友了。 我不再做了。 回到下面的还是你的现职。 (} return girlFriend; }; 这样看起来很容易理解,但这样会发生错误

只有你

let girl friend1=girl.geta girl friend (; //她出生时,得到的是

函数() ) if (! Girlfriend(Girlfriend=newgirl ); //恭喜你。 我取消了订单,成功交到了女朋友。 (else )//你已经有女朋友了。 我不再做了。 回到下面的还是你的现职。 (} return girlFriend; }这是尚未实行的方法

你必须用闭包自动执行这个方法。

没有接触过闭包的学生可能还很难理解,我建议你看我的另一篇文章详细解说js闭包。

3 .应用场景系统中被唯一使用利用单实例模式思想实现登记框的显示与隐藏

下一段有类似的感觉吗

我来测试一下

let log in1=loginform.getinstance (; login1.show (; //打印:登录框显示let log in2=loginform.getinstance ()成功; login2.hide (; //打印:成功隐藏登录框,可以看到login1和login2是同一实例

可以再测试一次

let log in1=loginform.getinstance (; login1.show (; //打印:登录框显示let log in2=loginform.getinstance ()成功; login2.show (; //弹匣:发现登录1和登录2是同一实例

2 .其他APP场景购物车(类似于登录框) vuex和redux store。 我相信,学习vuex和redux的学生已经感受到了这种全局状态管理实际上是单实例模式。 () ) ) ) )。 因为演示不方便,所以不进行代码演示。 学了vuex自然就知道了,没学到的,演示看代码也很无神,让读者无知,这不是我的做法吗?

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。