设计模式:解决某一类问题的一种思想,是一种行之有效的解决方式 一共有23中思想模式;
单例设计模式:
解决的问题:保证一个类的对象在内存中的唯一性
应用的场景:多个程序都在操作同一个配置文件时,在程序A操作后,程序B要知道并继续基于A操作后的结果进行操作,前 提,数据都存储在配置文件的对象中,要求程序A和程 序B操作的配置文件对象是同一个
怎么实现呢? 怎么可以保证这个类只能产生一个对象呢?
思路:
1、问题是其他程序都可以通过new创建该类的对象,无法控制数量,所以,不让其他程序new对象,
2、那第一步的问题也产生了,那其他程序不就没有对象了吗?干脆在本类中自己new一个本类对象,这样的好处,不让别的程序new,自己new,可以实现数量控制
3、 对外提供其他程序获取该对象的方式
步骤:
1. 不让其他程序new该类对象,咋办?可以把类中的构造函数私有化,
2. 在本类中new一个对象
3. 定义一个方法返回该对象
代码体现:
饿汉式:class single{
privatestatic Single s = new Single();
Private single(){}
publicstatic Single getInstance(){// 加上静态后可以直接被类名调用
returns;
}
}
class singleDemo{
publicstatic void main(String[] args){
Singles1 = Single.getInstance();
Singles2 = Single.getInstance();
Sop(s1==s2); // 打印结果为true;
}
}
懒汉式:class single{
privatestatic Single s =null;
private single(){}
publicstatic Single getInstance(){// 加上静态后可以直接被类名调用
if(s=null){
s=new Single();
}
returns;
}
}
class singleDemo{
publicstatic void main(String[] args){
Singles1 = Single.getInstance();
Singles2 = Single.getInstance();
Sop(s1==s2); // 打印结果为true;
}
}