设计模式:解决某一类问题行知最有效的方法。java有23种设计模式
单列设计模式:
解决一个类在内存中只存在一个对象
思路:(要保证对象的唯一性)
1.为了避免其它程序建立该对象,先禁止替他类创建改对象,(构造函数私有化)
2.还能让其他程序可以访问到该对象,只能在该类中自己生成一个对象
3.为了其他程序可以访问到当中的值,可以设计一些方法获取到值。
当然他们当中有两种方式:懒汉式,饿汉式。
(其中两者的区别是在内存当中的何时创建)
下面是饿汉式的代码:(写法)(开发一般用这个方法)
//创建一个学生类的单列设计模式
class Student
{
private String name="zhulang";
//构造函数私有化
private Student(){};
//静态自己创建自己的对象
private static Student s =new Student(); //静态方法获取到该对象
public static String getInstance()
{
return s.name;
}
懒汉式:(面试时一般用这个)
原理,对象是在方法被调用时,才初始化,也叫做对象的延时加载
如下:只有Student类进内存。但是对象没有存在,只getInstance方法是才被创建
class Student
{
private String name = "zhulang"; // 构造函数私有化
private Student()
{
}; // 静态自己创建自己的对象
private static Student s = null; // 静态方法获取到该对象
public static String getInstance()
{
//对象是否被其他程序调用
if (s == null)
{
//上锁
synchronized (Student.class)
{
if (s == null)
s = new Student();
}
}
return s.name;
} }