java的七种设计原则之单例

     当我们在做项目时,会出现这么一种情况: 有很多类都想创建一个类的对象,然而每次创建这个类的对象时都要花销内存.而且在很多个类中都要创建那一个公共类的对象,这样显得很麻烦,当项目很大类很多时,我们难道还要每次都要在需要调用那个公共类的方法的时候再去创建一个对象吗?

      我们可以这样想:能不能把这个公共类封装起来,不让其他的类再new出对象呢?也就是让这个类的对象唯一呢?这样我们就不用每次在需要的时候都去创建这个公共类的对象了.这也就是java中的单例.

       单例:即为单一实例,对象唯一.

我们来看代码:

public class SingleTon {

    //我们将这个对象封装起来
    private static SingleTon singleTon;

    private SingleTon() //构造方法变为私有,那么其他类就不能再创建对象了.
    {
        prints();
    }
    //获取对象
    public static SingleTon getSingleTon()
    {
        return singleTon;
    }
    //创建并获取对象
    public static SingleTon single()
    {
        singleTon = new SingleTon();
        return singleTon;
    }

    private void prints()
    {
        System.out.println("单例");
    }
} 

      上面代码中,我将singleton这个类对象设置为private,再把这个类的构造函数也封装起来,那么在其他类里就不能调用该类的构造函数来创建SingleTon对象了,这样就可以实现单例.

我们再看测试类中怎么来调用:

public class TestSingle {

    public static void main(String[] args) {
        SingleTon singleNew = SingleTon.single();

    }
} 

在这个测试类中,SingleTon singleNew = SingleTon.single(); 这一句是把SingTon这个类的对象赋值给SingleTon类型的变量singleNew.  这样我们就实现了单例.

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值