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
;
}
}