传智播客学习总结---设计模式之Singleton(单态)

      说到设计模式,首先就应该说一下什么是设计模式,设计模式就是一种行之有效的对某一类问题的解决方式。简单的讲,所谓模式,就是很好研究的范例,设计模式,就是设计范例。

       在Java中设计模式有23种,分为三类:创建型(Creational),结构型(Structural),和行为型(Behavioral)模式。创建型模式是用来创建对象的,我们在编码时经常要对类进行实例化, 创建型模式就是提供提供各种不同的解决方法,从实例化的代码中去除硬编码(hard-coding),从而使编码更加灵活和简单, 适用于更复杂的行为。结构型模式处理类或对象的组合来获得更大的结构。行为型模式处理类或对象如何交互。

      我下面要说的就是创建型模式的一种--单态,也可称做单例。

      单态设计模式的作用是,保证一个类在内存当中的类的实例的唯一性。设计模式的出现通常都是根据现实当中的业务和需求而来的,而在什么情况下需要保证类的实例的唯一性呢?比如说:我们要自己设计一个数据库的程序,那么就必须保证类的实例的唯一性。虽然我们能够通过static的方式达到基本的需求,但是这种描述是有缺陷的,因为方法对事物的描述是不确切的,它只能描述行为,不能描述属性,另外static描述的属性和方法随类的加载而加载,随类的消失而消失,生命周期特别长,我们在一个类中设置大量的static属性和方法是不合适的,这个时候我们就需要使用单态设计模式。

      我们设计一了个类,一般情况下就可以创建N多的对象调用类的属性和方法,这不满足我们的需求。因此,我们就要考虑如何实现对象唯一性即如何实现单态,我们知道,每次创建对象的时候都需要调用本类的构造方法进行初始化,我们就能想到可以将本类构造方法私有化,然后在本类中建立一个私有的静态的final修饰的本类对象,最后对外提供一个公有静态方法,每次调用该方法的时候就可以返回该对象。(思考:为什么必须是静态方法,静态对象呢?因为访问方法有两种形式,一种是对象调用,一种是类名.方法名的方式调用,因为我们不允许在其他类中创建对象,所以只能使用类名.方法名的形式调用方法,所以必须将方法设为静态的,而静态方法只能访问静态成员,所以对象的实例也必须是静态的)。

示例:

class Singleton
{
    private static final Singleton s = new Singleton();//自身建立本类对象。
    private Singleton(){}//不让对方建立该类对象。
    public static Singleton getSingleton()//对外提供方法让外界获取该对象。
    {
          return s;
    }
}

 

class  SingletonDemo
{
     public static void main(String[] args)
     {
          Singleton s1 = Singleton.getSingle();
      }
}

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值