设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。 毫无疑问,设计模式于己于他人于系统都是多赢的;设计模式使代码编制真正工程化;设计模式是软件工程的基石脉络,如同大厦的结构一样。
设计模式分为三种类型,共23种
单例模式是最简单的设计模式之一,保证一个类仅有一个实例,并提供一个访问它的全局访问点。
配置文件、工具类、线程池、缓存、日志对象等
如果以上这些对象创造出多个实例,就会导致许多问题, 比如占用过多资源,不一致的结果等。那么如何保证整个应用中某个实例有且只有一个呢?这里我们就可以通过 单例模式来实现了。
常见的单例模式分为如下两类:
class InstanceDemo2 { public static void main(String[] args){ 懒汉 懒=懒汉.getInstance(); 懒汉 汉=懒汉.getInstance(); if(懒==汉){ System.out.println("是同一个实例"); }else{ System.out.println("不是同一个实例"); } } } //懒汉模式 class 懒汉{ //1,将构造方法私有化,不允许外部直接创建对象 private 懒汉(){} //2,声明类的唯一实例,使用private static 修饰 private static 懒汉 lazy; //默认值为null //定义getInstance public static 懒汉 getInstance(){ if(lazy==null){ lazy=new 懒汉(); } return lazy; } }
class InstanceDemo { public static void main(String[] args){ 饿汉 饿=饿汉.getInstance(); 饿汉 汉=饿汉.getInstance(); if(饿==汉){ System.out.println("是同一个实例"); }else{ System.out.println("不是同一个实例"); } } } class 饿汉{ //1.限制外界不能随意的new对象 private 饿汉(){} //在类内部造对象,然后在将对象送出去 //2.创建对象 private static final 饿汉 h=new 饿汉(); //3.提供一个用于获实例的方法, 使用public static修饰 public static 饿汉 getInstance(){ return h; } }
饿汉模式的特点是加载类是比较慢,但是运行时获取对象的速度比较快,线程安全,懒汉模式的特点是加载类是比较快,但是运行获取对象的速度比较慢,线程不安全
如以上文章或链接对你有帮助的话,别忘了在文章结尾处轻轻点击一下 “ 还不错 ”按钮或到页面右下角点击 “ 赞一个 ” 按钮哦。你也可以点击页面右边“ 分享 ”悬浮按钮哦,让更多的人阅读这篇文章。
作者:Li-Cheng
微博: http://weibo.com/licheng0426
出处: http://www.cnblogs.com/Li-Cheng/p/4377890.html
由于本人水平有限,文章在表述和代码方面如有不妥之处,欢迎批评指正。留下你的脚印,欢迎评论哦。你也可以关注我,一起学习哦!