• Java中的设计模式之单例模式


    Java中的单例模式

    设计模式是软件开发过程中经验的积累

    一、单例模式

    1、单例模式是一种常用的软件设计模式,通过单例模式可以保证系统中一个类只有一个实例而且该实例易于外界访问,从而方便对实例个数的控制并节约系统资源。如果希望在系统中某个类的对象只能存在一个,单例模式是最好的解决方案。

    2、单例模式的三个要点(面试常问):

      某个类只能有一个实例,不能new对象

         必须自行创建这个实例

         必须自行向整个系统提供这个实例(创建一个公开方法,返回这个对象)

    代码演示之懒汉式:

    /*
     * 单例模式(懒汉式):
     * 1、保证外部不能new对象
     * 2、类内部自己创建对象
     * 3、创建一个公开方法,返回这个对象
     * 这是简单的写法,在我们学了多线程之后,这个懒汉式写法会有些不同的地方
     */
    public class SingleTon {
        private SingleTon() {        
        }
        private static SingleTon instance;
        public static SingleTon getInstance(){
            if(instance==null){
                instance=new SingleTon();
            }
            return instance;
        }
    
    }
    /*
    *测试类
    */
    public class Test {
        public static void main(String[] args) {
            SingleTon n=SingleTon.getInstance();
            SingleTon n2=SingleTon.getInstance();
            
            System.out.println(n.toString());
            System.out.println(n2.toString());
        }
    
    }

     运行截图:

    代码演示之饿汉式:

    /*
     * 饿汉式
     */
    public class SingleTon {
        private SingleTon() {
        }
        private static final SingleTon instance=new SingleTon();
        public static SingleTon getInstance(){
            return instance;
        }
    }
    /*
     * 测试类
     */
    public class Test {
        public static void main(String[] args) {
            SingleTon n=SingleTon.getInstance();
            SingleTon n2=SingleTon.getInstance();
            
            System.out.println(n.toString());
            System.out.println(n2.toString());
        }
    }

    运行截图:

  • 相关阅读:
    rattle: Graphical user interface for data mining in R
    分享:下一代 Hadoop YARN 简介:相比于MRv1,YARN的优势
    djscaffold(Django)
    分享:TideSDK Demo
    青橙CEO蔡晓农:给大众高性价比智能机
    电脑公司Windows7旗舰版Ghost_Win7_64位_Ultimate_201210装机版
    分享:下一代 Hadoop YARN 简介:相比于MRv1,YARN的优势
    ghost win7,windows7系统之家,win7 64位旗舰版下载,win7系统下载
    phpMyAdmin or phpPgAdmin
    Python virtualenv
  • 原文地址:https://www.cnblogs.com/shen-hua/p/5441714.html
Copyright © 2020-2023  润新知