课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
单例模式是软件编程开发程序员在学习设计模式的时候需要重点掌握的一个软件设计模式,而本文我们就通过案例分析来简单了解一下,单例设计模式优缺点与测试应用。
1、优点or缺点
通过限制实例化来保证只有一个实例对象可以节约很多内存。我们不必在每次实例化都为实例对象申请内存,单例的实例对象只需要申请一次内存就可以在整个应用中使用。然而单例模式经常被当作「反模式」,并且需要尽量避免在javascript中使用到它。
在许多编程语言中,例如Java或C++,不可能像在JavaScript中那样直接创建对象。在那些面向对象的编程语言中,我们需要创建一个类,它会创建一个对象。该创建的对象具有类实例的值,就像JavaScript示例中的实例值一样。
2、测试
测试单例模式的代码会比较麻烦。由于我们不能每次都创建新实例,因此所有测试都依赖于对上一次测试的全局实例的修改。在这种情况下,测试的顺序很重要,一个普通的修改可能会导致整个测试case失败。测试后,我们需要重置整个实例以重置测试所做的修改。
3、全局行为
一个单例对象可以在整个应用的任何地方被获取和使用。全局变量也有相同的行为:全局变量可以在全局作用域被获取和使用,所以也可以在整个应用的任何地方被获取和使用。
设置全局变量一般被认为是一种比较不好的设计,因为修改全局变量的值可能会污染全局作用域,这可能会导致一些意想不到的副作用。
但是,单例的常见用法是在整个应用中拥有某种全局状态。开发者的代码有多个模块同时依赖某个可变对象可能会导致不可预知的行为(副作用)。
通常情况下,项目代码中某些模块会修改全局状态,而某些模块又会去消费这些全局状态的数据。所以执行顺序在这种情况下就比较重要了:我们不想要意外的提前消费数据,因为一开始是数据一般是空的。随着项目代码越来越多,逻辑越来越复杂,许许多多的组件互相依赖,这个时候理解数据的流向就变得越来越棘手。
【免责声明】本文系本网编辑部分转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与管理员联系,我们会予以更改或删除相关文章,以保证您的权益!更多内容请加danei0707学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。