单例设计模式

1,什么是设计模式?

设计模式是在经过大量的实践中总结和理论化之后的代码结构 ,算是一种编程风格

2, 什么是单例模式?

单例------> 指单个实例

采取一定的方法保证整个软件系统中,对某个类只能存在一个对象实例 ,并且该类只提供一个可取的其对象实例的方法

单例模式的两种形式: 饿汉式 和 懒汉式

名字由来 :

1)饿汉式:不管程序是否需要这个对象的实例,总是在类加载的时候就先创建好实例,理解起来就像不管一个人想不想吃东西都把吃的先买好,如同饿怕了一样。

2)懒汉式:如果一个对象使用频率不高,占用内存还特别大,明显就不合适用饿汉式了,这时就需要一种懒加载的思想,当程序需要这个实例的时候才去创建对象,就如同一个人懒的饿到不行了才去吃东西

参考: (23 封私信 / 16 条消息) 为什么单例模式要起名叫饿汉式和懒汉式? - 知乎 (zhihu.com)

3 .1饿汉式步骤 :

1)构造器私有化 ---> 防止直接 new 出 实例对象

2)在类的内部创建对象 

3) 向外暴露一个静态的公共发布方法 --->getInstance

4)代码实现

class GirlFriend{
        
        private String name ;
        
        
        private static GirlFriend   gf = new GirlFirend() //在类内部实例化对象     

        private  GirlFriend(){ // 构造器私有化
        }
        
        public static GirlFriend getInstance(){ //在类中创建公共静态方法供外部使用
            return gf ;
        }

3.2 懒汉式步骤

1) 构造器私有化

2)定义一个 static 静态属性对象

3) 提供一个 public 的 static 方法 ,可以返回 一个 对象实例

4)代码实现

class Cat {
    private String name ;
            
    private static Cat cat; 

     private Cat(){
        // 构造器私有化
        }

         public static Cat getInstance(){
        if(cat == null){   //如果还没创建cat 对象
            cat  = new Cat();

        }
        return cat;
    }

    

二者区别 :

        是在创建对象时的区别

        饿汉式 不管程序是否需要这个对象的实例,总是在类加载的时候就先创建好实例;

        懒汉式  当程序需要这个实例的时候才去创建对象 。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值