package
day10;
/*
*设计模式:设计模式是在大量的实践中总结和理论化之后优选的代码结构、编程风格、已经解决问题的思考方式
*23种设计模式
*
*单例模式:解决的问题,使得一个类只能够创建一个对象;
*/
public
class 饿汉式 {
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
day10;
public
class
懒汉式 { //懒汉式可能存在线程安全问题的
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.私有化此对象,通过共有的方法来调用
//4.此公共的方法,只能通过类来调用,因为设置为static.同时类的实例也必须为static
public
static Singleton1 getInstance(){
//判断
if(instance
==
null){
instance
=
new Singleton1();
}
return
instance;
}
}