单例设计模式和main方法
程序员文章站
2022-06-05 17:33:55
设计模式就是在大量的实践中总结和理论之后优选的代码结构、编程风格、以及解决问题的思考方式。 说白了设计模式就是在实际编程中逐渐总结出的解决问题的套路,类似于数学公式。 类的单例设计模式:在开发过程中有且只有一个实例化对象。 怎么做到在整个系统运行过程中,这个类只被实例化一次?不论在哪只调用这一个实例 ......
设计模式就是在大量的实践中总结和理论之后优选的代码结构、编程风格、以及解决问题的思考方式。
说白了设计模式就是在实际编程中逐渐总结出的解决问题的套路,类似于数学公式。
类的单例设计模式:在开发过程中有且只有一个实例化对象。
怎么做到在整个系统运行过程中,这个类只被实例化一次?不论在哪只调用这一个实例?
什么情况下使用单例设计模式?
实例化对象的创建要消耗大量的时间和资源,例如构造方法中的代码行太多。或者频繁的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命令时传递给所有运行的类的参数。
上一篇: float和double的区别
下一篇: CSP201803-4棋局评估