一.设计模式概念
是一套被反复使用、被多数人知晓的、经过分类的代码设计经验的总结。其目的是为了提高代码的可重用性,让代码更容易被他人理解,保证代码的可靠性。常见的设计模式有:单列模式、适配器模式、工厂模式、代理模式等等。
二.单列模式
1.概念
单列模式是一种保证系统中只有一个类只有一个实例,并且该实例易于被外界访问的设计模式。
2.适用场景
适用于有且只需要一个对象的场景,如配置文件,工具类,线程池,缓存、日志对象等等。
三.单列模式类型
单列模式有饿汉模式、懒汉模式和双重锁模式
1.饿汉模式
使用类静态成员获取实例,由于是静态成员,随之类的加载而加载,不管用不用,都会加载下来,所以形象的称为饿汉模式。
2.饿汉模式实现步骤
(1).将默认构造函数改为私有的构造函数,确保外界不能通过构造函数直接实例化类,这是保证类的实例化只有一个的前提。
(2).创建一个私有的静态类成员变量,并且利用(1)中的私有构造函数为其实例化,获得实例化变量,由于是静态的变量,该实例化有且只有一个;为了属性安全,利用private修饰,并且在步骤(3)将其封装。
(3).封装(2)中的属性,利用public保证外界能够访问,利用static使其变成类的成员方法,能够通过类名直接访问,而无需实例化。
3.饿汉模式实现java实现代码
”’java
package com.hfutwjw.pattern;
/**
* 单列模式之饿汉模式:通过静态方法实例化类,保证类只有一个实例对象,并且能被外界访问。
* 静态方法在类加载的时候就被加载,不管用不用,都能被加载,所以称为单例模式。
* 实现步骤:
* 1.创建一个私有构造函数,确保外界不能通过构造函数方法随意获得实例,这是保证实例化对象只有一个的第一步
* 2.创建一个私有的静态类变量,该变量通过1中的私有构造函数实例化,此时获得唯一(静态)的实例化对象,但由于是私有的,不能被外界访问。
* 3.封装2中的私有静态变量,使得外界能够访问实例化对象。
* @author Administrator
* 2016.1.16
*/
public class Singleton {
/**
* 实现步骤1,创建私有的构造函数,不允许外部类通过构造函数实例化
*/
private Singleton(){
}
/**
* 实现步骤2,创建一个私有的静态类变量,并利用构造函数为其赋值,为了安全,还需要将此属性封装
*/
private static Singleton instance = new Singleton();
/**
* 封装步骤2中的变量,使用public使得外界可以访问,使用static让该方法变成类成员,可以通过类名直接访问
*/
public static Singleton getInstance(){
return instance;
}
}
”’