设计模式就是在大量的实践中总结和理论以后优选的代码结构、编程风格、以及解决问题的思考方式。java
说白了设计模式就是在实际编程中逐渐总结出的解决问题的套路,相似于数学公式。编程
类的单例设计模式:在开发过程当中有且只有一个实例化对象。设计模式
怎么作到在整个系统运行过程当中,这个类只被实例化一次?不论在哪只调用这一个实例?数组
什么状况下使用单例设计模式?安全
实例化对象的建立要消耗大量的时间和资源,例如构造方法中的代码行太多。或者频繁的new的新对象没有必要。spa
//饿汉式:一开始就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命令时传递给全部运行的类的参数。对象