单例设计模式和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命令时传递给所有运行的类的参数。

原文地址:https://www.cnblogs.com/fangfangfanga/p/12116837.html

时间: 2024-09-26 19:56:40

单例设计模式和main方法的相关文章

【设计模式】单例设计模式的N中Java实现方法

特点 单例模式的特点: 1.只能有一个实例: 2.必须自己创建自己的一个实例: 3.必须给所有其他对象提供这一实例. 饿汉式单例模式 也称为预先加载法,实现方式如下: [java] view plaincopy class Single { private Single()( Syustem.out.println("ok"); ) private static Single instance = new Single(); public static Single getInstan

单例设计模式

一:单例设计模式的定义 单例设计模式,顾名思义,就是在整个程序运行过程中,只向外界提供一个对象,这样做可以避免资源的浪费,例如 我们打开回收站或者ppt时,只会启动一个窗口. 单例模式的java实现: 1:饿汉式 1 /** 2 * 3 */ 4 package com.hlcui.singleton; 5 6 /** 7 * @author Administrator 饿汉式单例类 8 */ 9 public class SingletonDemo { 10 // 1:内部创建一个对象 11

设计模式整理_单例设计模式

单例设计模式,它确保一个类只有一个实例,并提供一个全局访问点. 由于单例设计模式对应的类只能创建一个对象,因此它所对应的方法必须是static(不是static只有创建对象才能调用). 以下是单例模式的一个经典实现:采用了延迟加载对象的例子. public class Single1 { private static Single1 single; //利用一个静态变量来记录Single1的唯一实例,这里没有直接声明,采用了延迟加载模式. private Single1(){} //把构造器声明

Java——单例设计模式

设计模式:解决某一类问题最行之有效的方法.Java中23种设计模式:单例设计模式:解决一个类在内存中只存在一个对象. 想要保证对象唯一.1,为了避免其他程序过多建立该类对象.先禁止其他程序建立该类对象2,还为了让其他程序可以访问到该类对象,只好在本类中,自定义一个对象.3,为了方便其他程序对自定义对象的访问,可以对外提供一些访问方式 这三部怎么用代码体现呢?1,将构造函数私有化.2,在类中创建一个本类对象.3,提供一个方法可以获取到该类对象. 对于事物该怎么描述,还怎么描述.当需要将该事物的对象

java的单例设计模式

/* 单例设计模式解决的问题:可以保证一个类在内存中对象唯性一性(数据实现了共享). 如何保证对象唯一性呢?1,不允许其他程序用 ,2,在该类创建一个本实例.3,对外提供一个方法让其他程序可以获取该象.步骤:1,私有化该类构造函数. 2.通过 new 在本类中创建一个对象. 3,定义一个公有的方法,将创建对象返回.*/ public class Test1 { public static void main(String[] args) { // TODO 自动生成的方法存根 Test5 t1=

【黑马】程序员————多线程(二)单例设计模式、线程间通信,JDK1.5互斥锁

------Java培训.Android培训.iOS培训..Net培训.期待与您交流!----- 一.单例设计模式 单例设计模式的意义: A.保证类在内存中只有一个对象,不提供外部访问方式,构造函数用private修饰. B.提供公共方法(static修饰,类的静态方法),获取类的实例.单例设计模式分为饿汉和懒汉两种模式. 饿汉式&懒汉式 class Test33 { public static void main(String[] args) { Fanjianan.getInstance()

单例设计模式(2015,10,15)

public class LOL { /* * 懒汉式 */ private String name; //private static LOL lol = null; private static LOL lol = new LOL(); private LOL(){ } /*public synchronized static LOL getLol(String argName){ if(lol == null){ lol = new LOL(argName); } return lol;

JAVA_SE基础——37.单例设计模式

本文继续介绍23种设计模式系列之单例模式. 我们在javaSE的基础学习中,会讲到:单例设计模式.模板设计模式.装饰者设计模式.观察者设计模式.工厂设计模式 我以后随着水平的提高,我会专门开个分类写设计模式的.现在请原谅我的知识面有限-- 设计模式→中的    "模式" 二字是什么意思.. 模式:模式就是解决 一类 问题的固定步骤 . 模式的概念最早起源于建筑行业.... 建房子的步骤都是一样子: 打地基-----> 浇柱子------->盖楼面--------->砌

黑马程序员--Java基础学习笔记【单例设计模式、网络编程、反射】

------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 设计模式分类: 创建模式:是对类的实例化过程的抽象化,又分为类创建模式和对象创建模式 类创建模式:工厂方法模式 对象-:简单工厂(静态工厂方法)模式.抽象工厂模式.单例模式.建造模式- 结构模式:描述如何将类或者对象结合在一起形成更大的结构 适配器模式.缺省模式.合成模式.装饰模式(包装模式).门面模式- 行为模式:对不同的对象之间划分责任和算法的抽象化 不变模式.策略模式.迭代子模式.命令模