单例模式java实现

package Counter;

public class Counter {
    private int counter;
    private static Counter instance = null;

    protected Counter() {
    }

    public static Counter getInstance() {
        if (instance == null) {
            instance = new Counter();
            System.out.println("New instance created\n");
        }
        return instance;
    }

    public void incrementCounter() {
        counter++;
    }

    public int getCounter() {
        return (counter);
    }
}

 

package Counter;

public class Singleton {
public static void main(String[] args) {
    Counter counter1=Counter.getInstance();
    counter1.incrementCounter();
    counter1.incrementCounter();
    System.out.println("Counter:"+counter1.getCounter());
   
    Counter counter2=Counter.getInstance();
    counter2.incrementCounter();
    counter2.incrementCounter();
    System.out.println("Counter:"+counter2.getCounter());
}
}

单例模式java实现

时间: 2024-11-05 22:01:55

单例模式java实现的相关文章

设计模式 -- 单例模式(Java&&PHP)

所谓单例模式,简单来说,就是在整个应用中保证只有一个类的实例存在.就像是Java Web中的application,也就是提供了一个全局变量,用处相当广泛,比如保存全局数据,实现全局性的操作等. 能够想到的最简单的实现是,把类的构造函数写成private的,从而保证别的类不能实例化此类,然后在类中提供一个静态的实例并能够返回给使用者.这样,使用者就可以通过这个引用使用到这个类的实例了. 单例模式在这里介绍两种,一种是饿汉,一种是懒汉. 饿汉单例模式                        

深入单例模式 - Java实现

单例模式可能是代码最少的模式了,但是少不一定意味着简单,想要用好.用对单例模式,还真得费一番脑筋.本文对Java中常见的单例模式写法做了一个总结,如有错漏之处,恳请读者指正. 饿汉法 顾名思义,饿汉法就是在第一次引用该类的时候就创建对象实例,而不管实际是否需要创建.代码如下: public class Singleton { private static Singleton = new Singleton(); private Singleton() {} public static getSi

【养孩子这么贵,还是生一个算了吧】设计模式之单例模式Java版

定义 单例模式,保证一个类仅有一个实例,并提供一个访问它的全局访问点.所以在需要保证让一个类只有一个实例时,可以参考采用单例模式.通常我们可以让一个全局变量使得一个对象被访问,但它不能防止你实例化多个对象.唯一的办法就是,让类自身负责保存它的唯一实例.这个类可以保证没有其他实例可以被创建,并且它可以提供一个访问该实例的方法. 方法一 其一,不让其他类去实例化自己类的实例,那我们很容易想到可以通过定义一个private的构造函数.这是因为如果我们自定义了一个private的构造函数,那么系统默认的

单例模式/ java实现附代码 /

注: 场景和例子出自github的设计模式.传送门:https://github.com/iluwatar/java-design-patterns/tree/master/singleton 意图: 单例模式即使为了确保一个类只有一个实例,并提供一个全局访问点. 场景: 世界上只有一座象牙塔可以让巫师学习魔法,所有巫师都来到这座象牙塔进行修习.那么象牙塔就这里可以理解为单例.简单的来说就是只创建一个类的一个对象,这个象牙塔就可以理解为唯一对象. 实现: 想更好的理解单例模式,最好先了解一下ja

设计模式-单例模式JAVA实现

单例模式其实是一种面向底层的开发模式,业务里能用到的环境不是很多.这里权且以项目启动时获取仓库信息做示例. 一,饿汉模式,在项目一启动的时候就将所需要的对象实例化出来.虽然传说中可能会占用内存不一定会用到,但实际上写一个不会被用到的例的可能性极小,不过不排除一些业务类可能会因为业务的变更迁移而被废掉,这么看来还是有些道理的. 饿汉式的单例模式是线程安全的,因为在发起多线程之前这个对象就已经存在了package Singleton; /** 单例模式,饿汉式 @author [email prot

简单且线程安全的两个单例模式java程序

/***具体说明见 http://www.cnblogs.com/coffee/archive/2011/12/05/inside-java-singleton.html*/ package com.work.pattern; public class Singleton2 { private static Singleton2 instance = new Singleton2(); private Singleton2(){ } public static Singleton2 getIns

大话设计模式_单例模式(Java代码)

单例模式:保证一个类仅有一个实例,并提供一个访问它的全局访问点. 简单描述:构造函数设置为private,以禁止外部类实现本类.本类中提供一个静态方法返回一个本例对象(注意多线程中的实现) 大话设计模式中的截图: 代码例子: Singleton类: 1 package com.longsheng.singleton; 2 3 public class Singleton { 4 5 private static Singleton instance = null; 6 private stati

单例模式(Java代码实现)

单例模式的定义 单例模式确保类只有一个实例,并且提供一个全局的访问点. 懒汉式单例模式:延迟实例化,但节省空间 package com.sxh.singleton; public class SingleTon { /* * volatile关键字确保:当uniqueInstance变量被初始化为SingleTon实例时,多个线程能正确的处理uniqueInstance变量 * 分析:volatile修饰的成员变量,在每次被线程访问时,都强制性的从共享内存重读该成员的值: * 当值发生变化是,强

设计模式之单例模式(java实现)

单例模式:在这个模式下,一个类只能有一个对象,有两种方式 1.饿汉式   在加载类时直接new出对象 package cn.gzsxt.servlet; public class SingletonEH { //私有化构造器 private SingletonEH(){} //创建一个对象 private static SingletonEH instance = new SingletonEH(); //提供一个公有的方法调用 public static SingletonEH getInst