单例设计模式及应用

/*
单例设计模式:本类中只创建一个对象,外部通过方法只调用,改变,这一个对象
*/
class Single{              //饿汉式
 //创建一个本类对象
 private static Single s = new Single();
 //构造函数私有化,外界不可访问,不可创建对象
 private Single(){}
 //定义一个方法返回该对象,让其程序可以获取到
 public static Single getInstance()             //返回值为该类                      静态方法不能访问非静态变量
 {
  return s;
 }
}            
public class Demo {
       public static void main(String[] agrs)
       {
        Single s=Single.getInstance();              //只创建一个对象,只用一个对象,通过方法形成可控。
       }  //定义一个这个类的变量   = 对象创建在本类中为私有,外部不可访问,通过类名.getInstance,来访问                                            
}
/*
class Single{                    //懒汉式(延迟加载)
      private static Single s = null;
     
      private Single(){}
     
      static Single getInstance()
      {
         if(s==null)
         {
            s=new Single();
         }
         return s;
      }
}
public class Demo{
    public static void main(String[] agrs)
    {
       
    }
}
*/


/*
 * 单例设计模式应用
 *
 */
class superMan{
 private String name;
 private static superMan s = new superMan("lalala");
 private superMan(String name)
 {
  this.name=name;
 }
 public static superMan getInstance()
 {
  return s;
 }
    public void setName(String name)
    {
     this.name=name;
    }
    public String getName()
    {
     return this.name;
    }
}
public class Demo2{
 public static void main(String[] agrs)
 {
  superMan s1 = superMan.getInstance();
     System.out.println( s1.getName());
     superMan s2 = superMan.getInstance();
     s2.setName("hahaha");                  //改变里面的变量
     System.out.println( s2.getName());
 }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值