单例模式和多例模式的总结

简介: 单例模式和多例模式的总结

今天开始学习设计模式之单例和多例


单例模式的关键有两点:


1.构造方法为私有,这样外界就不能随意调用。


2.get的方法为静态,由类直接调用


多例模式(Multiton)


1 、多例类可以有多个实例

2 、多例类必须能够自我创建并管理自己的实例,并向外界提供自己的实例。


一、单例模式和多例模式说明:


image.png


单例和多例的详细描述:


什么是单例多例:


所谓单例就是所有的请求都用一个对象来处理,比如我们常用的service和dao层的对象通常都是单例的,而多例则指每个请求用一个新的对象来处理,比如action;

如何产生单例多例:


在通用的SSH中,单例在spring中是默认的,如果要产生多例,则在配置文件的bean中添加scope=“prototype”;


为什么用单例多例:


之所以用单例,是因为没必要每个请求都新建一个对象,这样子既浪费CPU又浪费内存;

之所以用多例,是为了防止并发问题;即一个请求改变了对象的状态,此时对象又处理另一个请求,而之前请求对对象状态的改变导致了对象对另一个请求做了错误的处理;

用单例和多例的标准只有一个:


当对象含有可改变的状态时(更精确的说就是在实际应用中该状态会改变),则多例,否则单例;


何时用单例?何时用多例?


对于struts2来说,action必须用多例,因为action本身含有请求参数的值,即可改变的状态;


而对于STRUTS1来说,action则可用单例,因为请求参数的值是放在actionForm中,而非action中的;


另外要说一下,并不是说service或dao一定是单例,标准同第3点所讲的,就曾见过有的service中也包含了可改变的状态,同时执行方法也依赖该状态,但一样用的单例,这样就会出现隐藏的BUG,而并发的BUG通常很难重现和查找;


目录
相关文章
|
2月前
|
设计模式 安全
详细讲解什么是单例模式
详细讲解什么是单例模式
|
2月前
|
设计模式 安全 Java
单例模式
​ 如有错误或有补充,以及任何的改进意见,请在评论区留下您的高见,同时文中给出大部分的示例 如果觉得本文写的不错,不妨点个赞,收藏一下,助力博主产生质量更高的作品 概念 单例模式(Singleton Pattern)是软件设计模式的一种,用于确保一个类只有一个实例,并提供一个全局访问点。这种模式通常用于需要频繁创建和销毁同一对象的场景,以减少系统资源的消耗和提高性能。 优缺点 优点: 实例控制:单例模式确保类只有一个实例,可以防止其他对象实例化自己的副本,从而确保所有对象都访问唯一实例。 节约资源:由于系统中只存在一个对象,可以节约系统资源,特别是在需要频繁创建和销毁对象的场景中,可
33 0
|
11月前
|
安全 Java
原来要这么实现单例模式
原来要这么实现单例模式
40 0
|
12月前
|
C# uml
找对象需要单例模式吗?
单例模式的类只提供私有的构造函数
|
设计模式 缓存 JavaScript
什么是单例模式?怎么生成单例类? - 1/14
什么是单例模式?怎么生成单例类? - 1/14
65 0
|
安全 Java
单例模式和多例模式(懒汉式和饿汉式)
单例模式和多例模式(懒汉式和饿汉式)
118 0
|
设计模式 安全 Java
回顾一下单例模式
回顾一下单例模式
|
设计模式 安全 前端开发
关于单例模式,你应该了解这些
关于单例模式,你应该了解这些
关于单例模式,你应该了解这些
|
设计模式 数据库 Python
|
设计模式 Java
单例模式的应用(2)
单例模式的应用(2)
112 0