一、软件设计模式
1、概念
软件设计模式(Design pattern),又称设计模式,是一套被反复使用,多数人知晓,经过分类编目、代码设计经验的总结。
2、作用
使用设计模式是为了可重用代码,让代码更容易被他人理解,保证代码可靠性和程序的重用性。
java有23种设计模式。
二、单例模式
单例模式(Singleton pattern)是java最简单的设计模式之一,属于创建型模式,它提供了一种创建对象的最佳方式。
单例模式要保证一个类仅有一个实例,并提供一个全局都可以访问的方式。
1、 好处:
可以节省内存和时间。
2、开发步骤:
1、私有化构造方法,不然外界随便new对象。
2、自己在类的内部创建一个对象。
3、提供公共的访问方式,并返回自己创建的对象。
3、常用的实现方式:
1、懒汉式
2、饿汉式
区别:
1、线程安全性:
饿汉式是线程安全的,在类创建的同时就已经创建好一个静态的对象供系统使用,不再改变。
懒汉式如果在创建实例对象时不加上synchronized则会导致对对象的访问不是线程安全的。
2、实例化时机:
懒汉是调用方法时候实例化对象,饿汉是加载类的时候就实例化。
三、单例模式的具体实现
1、饿汉式:
不管需不需要都先创建出来,方便使用。
2、懒汉式:
按需加载/延迟加载,只有需要时才创建。
3、静态饿汉式
使用静态代码块的方式实现,这种方法与第一种类似,也是一种饿汉模式。
4、静态懒汉式
使用内部类方式,与第二种类似,是一种懒汉模式。
需要注意的是:
使用内部类的方式,无需显式的进行同步加锁操作,可以通过类的静态成员只被加载一次的特嗲保证只有一个实例对象。 但是这种方法并不是饿汉式,而是懒汉式,因为加载一个类时,其内部类不会同时被加载。
一个类被加载,当且仅当其某个静态成员或者构造器被调用时才发生。 可以说这种方式是单例模式的最优解。 (代码是顺序执行的,先执行方法中的代码,return时才返回到创建对象,走静态内部类。)
文章知识点与官方知识档案匹配,可进一步学习相关知识Java技能树首页概览91609 人正在系统学习中
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!