一,单例模式
1,设计模式:
模式:就是前人在解决某类问题上总结出来的经验。
设计模式:在软件设计范畴中,针对某些问题最优秀的解决方案。
设计模式在万不得已,需要用的时机自然而然就使用了,不要在编码中为了使用设计模式而编码。
设计模式使用不当会造成软件结构复杂性增强。
2,几种面试需要准备的设计模式
工厂模式、单例模式、责任链模式、装饰器模式、代理模式、模板模式。
3,单例模式
单例模式的目的就是控制一个类永远只有一个对象。
二,单例模式的分析
1,把构造方法的访问权限降低。
2,在自身内部创建一个对象备用。
3,编写一个镜头方法用于返回此对象。
//饿模式
class T{
private static T tt=new T();
private T( ){ }
public static T createT{
return tt;
}
}
public class SingletonDemo{
public static void main(String[] args){
/*
没有使用private之前,只要使用new就可以创建T对象
T tt=new T();
为什么T类可以创建很对对象?
原因是T类的构造方法可以随意在别的类使用,就可以结合new创建对象。
想实现单例模式的第一步就是控制构造方法的使用,私有构造方法。
如果构造方法私有了,就不能创建对象。因为私有构造方法只有在本类内部使用,
所以要在本类中提供一个公开的方法来调用此对象。
分析到这,类的自身是私有的,类的外部也不能访问,就不能调用。但是我们把它
定义为静态方法就可以调用了。静态方法可以没有对象而存在,直接使用类调用。
这样就可以使用静态方法返回这个类唯一的一个实例了。
*/
T tt =T.createT();
}
}
//懒模式
class T2{
private static T2 tt;
private T2( ){ }
public static T2 createT2(){
//需要判断是否已经存在了T2的对象tt
//如果没有则创建,如果已经有了则直接返回
if(tt=null){
tt=new T2();
}
return tt;
}
}