免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2342 | 回复: 0
打印 上一主题 下一主题

OOP的单例模式 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-01-21 11:36 |只看该作者 |倒序浏览
    在OOP中,一个对象只负责一个特定的任务通常是一种很好的做法。例如你也许希望只让一个对象去访问数据库。单例模式被认为是职责模式。在任何时候,应用程序都只会有这个类仅有的一个实例存在。这样可以防止我们去打开数据库的多个连接或者不必要地使用多余的系统资源。
所有的单例类至少拥有以下三种公共元素:
1.它们必须拥有一个构造函数,并且必须被标记为privete。
2.它们拥有一个保存类的实例的静态成员变量。
3.它们拥有一个访问这个实例的公共的静态方法。
    但单例类不能在其他类中直接实例化。单例类只能被其自身实例化。要让单例类起作用,就必须使其为其他类提供一个实例,用它调用各种方法。单例类不会创建实例副本,而是会想单例类内部存储的实例返回一个引用。结果是单例类不会重复占用内存和系统资源,从而让应用程序的其他部分更好地使用这些资源,作为这一模式的一部分,必须创建一个空的私有的__clone()方法,以防止对象被复制或者克隆。
    返回实例引用的这个方法通常被命名为getInstance()。这个方法必须是静态的,而且如果它还没有被实例化,就必须进行实例化。getInstance()方法通过使用instanceof操作符和self关键字,可以检测到类是否已经被初始化。如果保存实例的静态成员为空或者还不是类自身的一个实例,那么这个实例将会被创建冰保存到存放实例的变量中。



本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u3/106588/showart_2155894.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP