AIDE技术官网
AIDEZY.COM

JAVA分别实现两种单例模式的实例代码

JAVA分别实现两种单例模式的实例代码

JAVA分别实现两种单例模式的实例代码

JAVA分别实现两种单例模式的实例代码,如果对你有帮助就看看吧,一个是JAVA的懒汉单例模式,一个是饿汉单例模式。

恶汉单例模式:

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

class single{
    private int num;
    public void setNum(int num){
        this.num = num;
    }
    public int getNum(){
        return num;
    }
    private single(){
    }
    private static single s = new single();
    public static single shili(){
        return s;
    }
}
public class test6 {
    public static void main(String[] args){
        single s1 = single.shili();
        single s2 = single.shili();
        s1.setNum(23);
        System.out.println(s2.getNum());
    }
}

懒汉单例模式:

/*
* 对象是方法被调用,才被初始化,也叫做对象的延时加载。成为懒汉式,不安全。
* danli类进入内容,对象还没有存在,只有调用了getins方法时。才会建立对象。
* */

class danli{
    private static danli s = null;
    private int num;
    public void setNum(int num){
        this.num = num;
    }
    public int getNum(){
        return num;
    }
    private danli(){};
    public static synchronized danli getins(){
        if (s == null){
            s = new danli();
        }else{
            return s;
        }
        return s;
    }
}

public class test7 {
    public static void main(String[] args){
        danli s1 = danli.getins();
        danli s2 = danli.getins();
        s1.setNum(23);
        System.out.println(s2.getNum());
    }
}

搜一下

海报生成 赞(1) 打赏

来都来了!评论一下呗! 抢沙发

  • QQ (自动获取名称头像等信息|选填)
  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址 (选填)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏

登录

忘记密码 ?

切换登录

注册