zoukankan      html  css  js  c++  java
  • 单例设计模式和main方法

    设计模式就是在大量的实践中总结和理论之后优选的代码结构、编程风格、以及解决问题的思考方式。

    说白了设计模式就是在实际编程中逐渐总结出的解决问题的套路,类似于数学公式。

    类的单例设计模式:在开发过程中有且只有一个实例化对象。

    怎么做到在整个系统运行过程中,这个类只被实例化一次?不论在哪只调用这一个实例?

      

    什么情况下使用单例设计模式?

      实例化对象的创建要消耗大量的时间和资源,例如构造方法中的代码行太多。或者频繁的new的新对象没有必要。

      

    //饿汉式:一开始就new一个对象出来
    public class Singleton { //私有构造方法,调用这个类的人就不能直接使用new来创建对象 private Singleton(){ }
    //私有的Singleton类型的类变量 private static Singleton INSTANCE = new Singleton();
    //构建返回返回类变量的方法 public static Singleton getInstance(){ return INSTANCE; } }

      

    //懒汉式:最开始,对象是null,直到有第一个人调用才new一个对象,之后所有的调用都用这个对象
    public class Singleton {
    
    //先私有化构造方法,不能让外边直接new对象
        private Singleton() {
        }
    
    //私有化一个对象
        private static Singleton instance = null;
    
    //公共方法:判断instance是否为null,为null就实例化,不是null就直接返回instance
        public static Singleton getInstance() {
            if (instance == null) {
                instance = new Singleton();
            }
            return instance;
        }
    
    }
    //此版本的懒汉式存在安全问题
    

      

    理解main方法的语法

    由于java虚拟机需要调用main()方法,所以该方法的访问权限必须是public。又因为java虚拟机在执行main()方法时不必创建对象,所以该方法必须是static的。该方法接收一个String类型的数组参数,该数组保存执行java命令时传递给所有运行的类的参数。

  • 相关阅读:
    023 使用@Value注解完成配置信息的注入
    022 使用@Bean的属性完成初始化和销毁的指定
    021 使用@Import注解完成Bean的注册
    020 使用@Conditional注解完成条件注入
    019 使用@Lazy完成懒加载
    018 使用@Scope完成bean的作用域的声明
    017 包扫描器和标记注解
    016 @Configuration和@Bean
    015 spel
    vs2010编辑器中找不到System.Web.Extensions.dll
  • 原文地址:https://www.cnblogs.com/fangfangfanga/p/12116837.html
Copyright © 2011-2022 走看看