一、
单例的设计模式:
1、解决的问题,使得一个类只能创建一个对象。
2、如何实现?如下所示的四步:2-1、私有化构造器,使得在类的外部不能够调用此构造器。;2-2、在类的内部创建一个类的实例;2-3、私有化此对象,通过公共的方法来调用;2-4、此公共的方法,只能通过类来调用,因此设置为static类型的,同时类的实例也必须为static声明的。
3、单例设计模式:
保证构造器属性私有;静态的方法里只能调用静态的变量。
4、饿汉式与懒汉式分别:
(1)、饿汉式:
在类的内部创建一个类的实例
private static Singleton instance=new Singleton();
(2)、懒汉式:
private static Singleton1 instance=null;
实例代码:(饿汉式)
package com.atguigu.danli;
/*
* 设计模式:设计模式是在大量的实践中总结和理论化之后优选的代码结构、编程风格、以及解决问题的思考方式。
* 23种设计模式。
*
* 单例的设计模式:
* 1、解决的问题,使得一个类只能创建一个对象。
* 2、如何实现?如下所示的四步:1、2、3、4。
* */
//饿汉式
public class TestSingleton {
public static void main(String[] args) {
Singleton s1=Singleton.getInstance();
Singleton s2=Singleton.getInstance();
System.out.println(s1==s2);
}
}
//只能创建Singleton的单个实例
class Singleton{
//1、私有化构造器,使得在类的外部不能够调用此构造器。
private Singleton(){
}
//2、在类的内部创建一个类的实例
private static Singleton instance=new Singleton();
//3、私有化此对象,通过公共的方法来调用
//4、此公共的方法,只能通过类来调用,因此设置为static类型的,同时类的实例也必须为static声明的。
public static Singleton getInstance() {
return instance;
}
}
实例代码:(懒汉式)
package com.atguigu.danli;
public class TestSingleton1 {
public static void main(String[] args) {
Singleton1 s1=Singleton1.getInstance();
Singleton1 s2=Singleton1.getInstance();
System.out.println(s1==s2);
}
}
//懒汉式(创建完后返回)
class Singleton1{
//1、
private Singleton1(){
}
//2、
private static Singleton1 instance=null;
//3、
public static Singleton1 getInstance() {
if(instance==null) {
instance=new Singleton1();
}
return instance;
}
}