关于单态设计模式--static的妙用

本文介绍了单态设计模式的概念及实现方法,通过示例代码详细解释了如何确保一个类仅有一个实例,并提供了全局访问点。重点讲解了静态成员变量和静态方法的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 
所谓的单态设计模式是指采取一定的方法保证在整个的软件系统中对某个类只能存在一个对象实例,并且该类只提供一个产生该对象实例的方法如果我们只希望产生一个实例对象,那么必须把构造函数设为private类型的,那么在该类的外部就不能用new()产生实例,因为在类的外部他无法使用私有的构造函数,所以只能调用该类的一个公共的静态函数.程序设计如下:
class AA

{

     static AA objref=new AA();

     private AA()

     {

     }

     public static AA getInstance()

     {

          return objref;

     }
}

public class BB

{

     public static void main(String []args)

     {

          AA obj1=AA.getInstance();

          AA obj2=AA.getInstance();

          if(obj1==obj2)

          System.out.println("true");

     }

}
运行结果为:true
请注意程序中的两个static.先说第二个因为在类AA外面无法产生该类的实例,所以该处必须为静态。而对于第一个,若没有的话当每产生一个实例的时候都会执行的一段代码再产生另一个实例这样如此重复下去直到把内存耗完为止,同时我们也不能在一个静态方法中引用一个动态的变量。所以必须为static类型的。在很多面是的时候我们也经常碰到类似的问题:例如如何在内存中只产生一个类的实例.相信看了上面的例子问题就会迎刃而解了.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值