设计模式 : 解决某一类问题最有效的方法
Java中有23种设计模式:
单例设计模式: 解决一个类在内存只存在一个对象
思想:
1,不让其他程序创建该类对象(封装,私有化类)
2,在本类中创建本类的对象
3,对外提供方法,使其他程序可访问这个对象
步骤:
1. 因为创建对象都要初始化构造函数,只要将本类的构造函数私有化,其他程序就不能创建本的对象
2. 在本类中创建本类的对象 并私有化
3. 对外提供访问本类对象的方法
举例:饿汉式:先初始化对象
public class Ex_Single
{
public static void main(String[] args)
{
Student ss = Student.getSingle();
Student ss2 = Student.getSingle();
ss.setNO(10);//用ss对象 改变NO
System.out.println(ss2.getNO());
ss2.setNO(20);//用ss2对象 改变NO
System.out.println(ss.getNO());
}
}
//单例设计模式只需要多三步
class Student
{
private int NO;
private Student(){}//1 :私有化构造函数
private static Student s = new Student();//2: 创建私有并静态本类对象
public static Student getSingle()//3 : 创建共有的并静态的方法,返回//该对象
{
return s;
}
public void setNO(int no)
{
this.NO = no;
}
public int getNO()
{
return NO;
}
}
懒汉式:后加载初始化对象,和饿汉式只是写法上的区别 先加载对象和后加载对象的区别
public class Ex_Single
{
public static void main(String[] args)
{
Student ss = Student.getSingle();
Student ss2 = Student.getSingle();
ss.setNO(10);//用ss对象 改变NO
System.out.println(ss2.getNO());
ss2.setNO(20);//用ss2对象 改变NO
System.out.println(ss.getNO());
}
}
//单例设计模式只需要多三步
class Student
{
private int NO;
private Student(){}//1 :私有化构造函数
private static Student s = null;//2: 创建私有并静态本类对象
public static Student getSingle()//3 : 创建共有的并静态的方法,返回//该对象
{
if(s == null)
s = new Student();//懒汉式在这里加载初始化对象
return s;
}
public void setNO(int no)
{
this.NO = no;
}
public int getNO()
{
return NO;
}
}