Java中的单例设计模式(饿汗式单例、懒汉式单例、单例模式中的Double Check)、多例模式

1.单例设计模式

单例模式是指:一个类只有一个对象。比如:地球、太阳
对象的产生是通过 构造方法 产生对象 客户A也可以new、客户B也可以new……我们没有办法控制会产生多少对象 。那么如何限制对象的产生数量?
给构造方法加private权限

  • private声明构造方法 ->类内部有效、类外部彻底构造不了对象
  • 单例类内部应该提供一个产生好的静态对象。(如果产生的对象是非静态的,那么就与对象强相关需要通过外部的对象调用,但是类外部又不能new对象,所以此对象必须用static修饰)
  • 单例内内部提供一个静态方法返回唯一的一个对象(非静态方法中不允许有静态方法)

1.1 饿汗式单例

class Singleton{
   
   
    // 产生了唯一的一个对象 、通过类名直接调用  、类加载时实例化
    private static final Singleton singleton = new Singleton();
    //构造方法私有化、类外部创建不了对象
    private  Singleton(){
   
   }
    //类外部只能通过对象调用普通方法,但是类外部没有对象,所以此方法为静态方法
    public static Singleton getInstance() {
   
   
        return singleton;
    }
}
public class Test {
   
   
    public static void main(String[] args) {
   
   
        Singleton singleton = Singleton.getInstance();
        Singleton singleton1 = Singleton.getInstance();
        // == 比较的是singleton与singleton1的地址
        System.out.println(singleton == singleton1
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值