java设计模式——主要讲单例模式

设计模式:

概念:是经过分类编目的代码经验的总结;

理解原理:解决某些设计问题的解决方案;

举例:设计模式类似于三十六计;

设计模式的分类:

共有23个,分为三种类型;

1.创建型:

单例模式,工厂模式,原型模式,构建者模式;

2.结构型;

3.行为型;

注意:设计模式与语言无关,主要解决设计问题;

一、单例模式要解决的问题

当需求是一个类只允许创建一个唯一实例(对象),不能创造多个时;

Person p = new Person();//public的构造方法;

二、如何解决

1.将构造方法定义成私有的;

2.在此类中定义一个static的实例;

3.提供(定义)一个公有的静态方法来返回这个唯一实例,方法名一般定义为getInstance();

三、单例模式的两种类型

1.懒汉式(lazy)

当第一次使用时,才会创建;

2.饿汉式

无论是否使用,都会提前创建好;

注意:两者的区别就是一个if语句;

例:

//sun类

public class Sun {
    private static Sun s = new Sun();//第二步,在类内定义一个static类型的实例;
    private Sun(){//第一步,定义私有构造方法

    }
    public static Sun getInstance(){//第三步,定义一个公有静态方法来返回这个唯一实例;
        if(s==null){//饿汉式有这个判断,懒汉式没有
            s = new Sun();
        }
        return s;
    }
}

//test类

public class test {
    public static void main(String[] args) {
        Sun s = Sun.getInstance();
        System.out.println(s);
        System.out.println(Sun.getInstance());
        System.out.println(Sun.getInstance());

    }
}
  • 7
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值