对于系统中的某些类来说,只有一个实例很重要,例如,一个系统中可以存在多个打印任务,但是只能有一个正在工作的任务;一个系统只能有一个窗口管理器或文件系统;一个系统只能有一个计时工具或ID(序号)生成器。如在Windows中就只能打开一个任务管理器。如果不使用机制对窗口对象进行唯一化,将弹出多个窗口,如果这些窗口显示的内容完全一致,则是重复对象,浪费内存资源;如果这些窗口显示的内容不一致,则意味着在某一瞬间系统有多个状态,与实际不符,也会给用户带来误解,不知道哪一个才是真实的状态。因此有时确保系统中某个对象的唯一性即一个类只能有一个实例非常重要。[3]
如何保证一个类只有一个实例并且这个实例易于被访问呢?定义一个全局变量可以确保对象随时都可以被访问,但不能防止我们实例化多个对象。一个更好的解决办法是让类自身负责保存它的唯一实例。这个类可以保证没有其他实例被创建,并且它可以提供一个访问该实例的方法。这就是单例模式的模式动机。[3
public class Singleton{
private static Singleton single = new Singleton();
private Singleton(){}
public Singleton getInstance(){
  return single;
}
}

最新文章

  1. php递归无限极分类实例
  2. linux命令学习-su
  3. oracle添加日志表
  4. 在masterpage中添加对usercontrol的引用
  5. Common Configration实验
  6. warning: the `gets' function is dangerous and should not be used.(转)
  7. C# DateTime.Now 用法小记
  8. 调试设置移动端Web开发环境搭建实践
  9. [0] 分析 EntityName 时出错。 行 2,位置 *。
  10. python 继承基础
  11. api-gateway实践(05)新网关工作 - 缓存定义
  12. shell的date命令:使用方法,以及小时、分钟的计算
  13. eShopOnContainers 知多少[6]:持久化事件日志
  14. C#生成缩略图,C#给图片添加水印
  15. Nginx PHP支持
  16. MVC项目实践,在三层架构下实现SportsStore-11,使用Knockout实现增删改查
  17. Activity标题(title)的显示和隐藏
  18. OPENWRT路由3G拔号实验
  19. Quartz2D指定显示范围
  20. ARC指南 strong和weak指针

热门文章

  1. 【原】android通过adb wireless的使用
  2. 黑盒测试用例设计方法&理论结合实际 -> 等价类划分
  3. [MySQL-1] mysql error 1101 blob/text column can't have a default value
  4. GTK+布局管理
  5. I2c串行总线组成及其工作原理
  6. C++中Const说明
  7. uva 11995 I Can Guess the Data Structure stack,queue,priority_queue
  8. 动态调用WebService 通用方法Moss 中 传统开发中都可用。
  9. 【转载】shell中的特殊变量$
  10. hdoj 1071 The area