Java单例模式 多种实现方式
2017-11-02 23:12
239 查看
一:通过静态私有成员实现单例模式
(1):私有化构造函数
(2):new静态实例属性对象,加锁。
单例类:
实现:
二:静态内部类实现单例模式
(1):私有化构造函数
(2):私有静态内部类,创建静态实例成员对象
(3):静态实例获取方法
单例类:
实现:
(1):私有化构造函数
(2):new静态实例属性对象,加锁。
单例类:
package SinglePag; /* * 构造函数私有化,结合锁+静态的概念 实现单例模式 */ public class SingleDemo { //防止类的实例化 private SingleDemo(){ } //静态 实例 属性 private static SingleDemo singleD; //获取对象实例 (单例的方式 ),锁住当前类(加锁) public synchronized static SingleDemo getInstance(){ if(singleD == null){ singleD = new SingleDemo(); } return singleD; } }
实现:
package SinglePag; public class SingleWinform { public static void main(String[] args) { SingleDemo singleDemo = SingleDemo.getInstance(); System.out.println(singleDemo.hashCode()); SingleDemo singleDemo2 = SingleDemo.getInstance(); System.out.println(singleDemo2.hashCode()); } }
二:静态内部类实现单例模式
(1):私有化构造函数
(2):私有静态内部类,创建静态实例成员对象
(3):静态实例获取方法
单例类:
package SinglePag; public class SingleInnerStatic { //静态内置类 private static class InnerStatic{ //静态私有 实例属性 private static SingleInnerStatic singleInstance; static{ singleInstance = new SingleInnerStatic(); } } //私有化构造函数,防止实例化 private SingleInnerStatic(){ } public static SingleInnerStatic getInstance(){ return InnerStatic.singleInstance; } }
实现:
package SinglePag; public class SingleStaticWinform { public static void main(String[] args) { SingleInnerStatic singleInnerStatic =SingleInnerStatic.getInstance(); System.out.println(singleInnerStatic.hashCode()); SingleInnerStatic singleInnerStatic2 = SingleInnerStatic.getInstance(); System.out.println(singleInnerStatic2.hashCode()); } }
相关文章推荐
- 生产者/消费者问题的多种Java实现方式
- ffmpeg多种码率控制方式的实现
- 字符串拼接多种实现方式及性能详解
- 文字与箭头对齐的多种实现方式
- android多种方式实现异步加载图片
- android 实现listview的adapter多种布局方式
- 网页跳转实现的多种方式
- 禁止用户重复登陆的多种实现方式
- Spring学习总结(一)——Spring实现IoC的多种方式
- Spring多种注入方式及注解实现DI
- Android------实现图片双击放大,缩小,左右滑动的多种方式
- salesforce中使用标准和自定义组件多种方式实现helpText(tip tool)效果 - 合集/配图
- @Autowired 详解-三种实现方式,多种歧义性解决方法
- C#高性能TCP服务的多种实现方式
- [置顶] 实现CirleImageView圆形图片的多种方式
- 生产者/消费者问题的多种Java实现方式--转
- Spring框架学习(九)——Spring实现AOP的多种方式
- 生产者/消费者问题的多种Java实现方式
- 生产者/消费者问题的多种Java实现方式
- 单列模式的多种实现方式