java设计模式之单例模式

单例模式

单例模式:一个类只产生一个实例化对象
如何限制对象的产生数量?

  1. private声明构造方法(无对象)

  2. 单例类内部提供一个产生好的对象

  3. 单例类内部提供静态方法返回唯一的一个对象

    饿汉式单例:

       class Test{
           private static final Test test=new Test();
           private Test(){}
           public static Test getInstance(){
              return test;
            }
         }
         public class SingletonTest {
              public static void main(String[] args) {
                Test test = null ; // 声明对象
                test = Test.getInstance() ;
            }
         }
    

饿汉式单例上来就new,懒汉式单例用时在new。写就写饿汉式单例,懒汉式单例存在线程安全问题(双重加锁单例模式)。
懒汉式单例:

package test;
class Singleton{
   private static Singleton instance ;
   private Singleton() { // private声明构造
   }
   public static Singleton getInstance() {
      if (instance==null) { // 表示此时还没有实例化
         instance = new Singleton() ;
      }
      return instance ;
   }
   public void print() {
      System.out.println("Hello");
   }
}
public class SingletonTest {
   public static void main(String[] args) {
      Singleton singleton = null ; // 声明对象
      singleton = Singleton.getInstance() ;
      singleton.print();
   }
}

单例程序特点:构造方法私有化,外部无法产生新的实例化对象,只能通过static方法取得实例化对象。

多例模式:一个类的对象数量是有限个–枚举

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值