——- android培训、java培训、期待与您交流! ———-
单例设计
第一次为自己的博客增添文字, 从今天开始改变成一个全新的自己 ,做自己不敢做的事情,让自己之前觉得不可能的事情,发生,很显然,自己也最近也发生在自己的身上的一些事情,那时自己觉得这些事情不会发生在自己的身上,可事实并非如此,现实就一棒子把我自己从不可能到可能只用了一瞬间,让我感受到了,没有什么不可能的,从此让我感觉自己的人生就像是电视剧一般的戏剧性,希望通过黑马找回自己,让自己有一个不错的提升。自己会继续坚持写学习日记的习惯,一个知识点,有代码,有注释,有自己的总结,复习的时候会事半功倍哦!
Java 中有很多种设计模式, 在此只是自己的一些拙见,不妥之处还请包涵。
一: 单例设计模式(Stringleton)
单例设计模式: 解决一个类在内存中只存在一个对象,保证对象的唯一性。
主要有以下三点以及体现方式:
1、 单例设计模式 保证某一个类只有一个实例,并提供一个访问方式 。将构造函数私有化
2、必须自行创建这个实例,私有化,外部不能新建对象,在内部新建一个本类对象。在类中创建一个本类对象。
3、 并且在本类里提供一个可供外部访问的静态方法getinstance(),一开始就要被加载。提供一个方法可以获取到该对象。
class String
{
private static Single s =new Single();
private Single(){}
publice static String getinstance()
{
return s;
}
}
饿汉模式:先初始化对象,这种被称为饿汉模式,一初始化就建立了对象,Single 类一进内存就已经创建好了对象,开发中用到很多, 安全方便。
class Single
{
private static String s =null;
private Single()
{
if(s==null)
s=new Sing();
return s;
}
}
懒汉模式: 这种表达方式称为懒汉式, 对象在方法调用时才初始化, 也叫做对象的延迟加载, Single 类进内存,对象没有建立,只有调用了getinstance 方法时,才建立对象,多线程用不安全,可以再getinstance 加上synchronized 同步, 但是效率太低, 可以再if判读语句外部再加一个判读,这样就不用, 每次都枷锁,关于单例使用的一句话定义单例,建议使用饿汉模式
public static Stingle getlnstance()
{
if(==null )
{
synchronized (Single.class)
{
if(s==mull)
s=new Single();
}
}
return s;
}