单例模式详解
单例模式是众多模式中最简单的一个,了解单例模式及其应用对学习其他模式有很大帮助。但对于到底什么是单例模式,网上解释却不太容易理解,我根据自己的学习,对单例模式有了一定的了解,大家参考一下,有不对的地方请提提意见,在这里xiao yun~~先谢过了哈~~~~那么什么是单例模式呢?单例模式,是指某个类保证只创建一个实例,并且能够自己实例化这个对象而且能够向整个系统提供这个实例。显然单例模式的要点有三个;一是某各类只能有一个实例;二是它必须自行创建这个事例;三是它必须自行向整个系统提供这个实例。
单例模式又有三个变种,分别为饿汉式单例模式 、懒汉式单例模式 、登记式单例模式。
举个例子吧
例一:饿汉式单例模式
//单态模式的理解与运用
//饿汉式单例
//为什么叫饿汉式单例呢,因为这个类一被加载就自己创建了一个对象,
//而不管你用没用到这个对象
这里我要多说两句 到底懒汉和饿汉有什么区别呢
并不是仅仅一个同步 同步只是为了保证线程安全的 ,因为 懒汉式不是和饿汉式一样,只是在需要的时候才创建实例,所以容易出现多了线程同时创建的情况 所以加上同步。现在知道他们为什么起这样奇怪的名字了吧!
接下来要说的是 什么时候才会用到单例呢 现在金融危机 就举个银行的例子吧 大家都知道银行都有总行和分行,那么总行做为一个类来说,它就应该采用单例模式,假设不是单例模式,总行可以创建多个实例,那么你在支行创建一个总行的对象存了一些钱,我也在支行创建一个对象存了一些钱,那么总行知道自己到底有多少钱么 不知道 ,因为对象不同。所以必须采取单例模式。大家会发现这两种单例有个缺点,就是不能被继承,为解决这个问题,又提出了登记式单例模式。例子我还没写出来。。。。。。。。。。待续 如果大家想学习设计模式,推荐大家一本书。《java与设计模式》,据说是国内相当来说比较好的,想要的留言,我发给你!