黑马程序员——单例设计模式

------- android培训java培训、期待与您交流! ----------

1  单例设计模式的作用

             解决一个类在内存中只能存在一个对象的问题,这样的话任何对 对象的操作都是在操作同一个对象

   如何保证对象的唯一?

            1  为了避免其他程序过多的建立该类对象,应该先禁止其他程序建立该类的对象

            2  为了让其他的程序可以访问到该类的对象,应该在本类中创建一个本类的对象

            3  为了方便外部使用这个对象,应该提供一个方法返回本类对象  

     对应的解决方案:

            1   将构造函数私有化,防止外部创建对象

            2  在本类中创建本类对象

            3  提供一个方法,可以获取本类的对象

         例如:

             

class Single{
	
	private Single(){};//构造函数私有化
	private static Single s = new Single();//创建本类对象
	public static Single getSingle(){
		return s;//返回本类对象的引用
	}	
}
这种创建方法,也叫“饿汉式“,类一加载就创建对象,也是在开发中比较常用的,

另一种就是”懒汉式“,当在调用这个类的获取方法时才创建对象

  例如:

class Single2{
	private Single2(){};
	private static Single2 s = null;
	public static Single2 getSingle2(){
		if(s == null){
			synchronized(Single.class){
				if(s==null)
					s = new Single2();
			}
		}
		return s;
	}
}
这种方式在使用时才创建对象,节省内存,但是在代码的操作上比较费时,也不简化,而且在多线程的操作中有可能存在安全问题(用上面代码中的方式来解决安全问题),所以在开发中都是应用饿汉式来创建单例类。






  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
黑马程序员的tb_brand是指在JavaWeb基础教程创建的一个表。这个表是用来存储品牌信息的,具体的表结构和数据类型需要和JavaBean类的成员变量保持一致。\[1\]在这个教程,使用了Maven来构建项目,并且使用了MyBatis作为持久层框架,通过配置pom.xml文件来引入相关依赖。\[2\] Maven是一个用于管理和构建Java项目的工具,它提供了一套标准化的项目结构、构建流程和依赖管理机制。\[3\] #### 引用[.reference_title] - *1* [【JAVAWEB开发】黑马程序员java web案例资料(含Element的删除与修改)](https://blog.csdn.net/aasd23/article/details/126940147)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [黑马程序员-MyBatis 框架-最全入门笔记、阿伟看了都得说真大、真细、真全!!!](https://blog.csdn.net/qq_57383364/article/details/128103058)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [JavaWeb——黑马程序员课程笔记](https://blog.csdn.net/King_ZACC/article/details/128573804)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值