单态设计模式

 

package com.yanek.test;

public interface UserManager {

 public abstract void addUser();

}

 

 

 

package com.yanek.test;

public class UserManagerImpl implements UserManager {

 public void addUser() {

  
  System.out.println("hello world!");
  
 }

}

 

 

package com.yanek.test;

public class UserManagerFactory {
 

 private static UserManager userManager;

 private UserManagerFactory()
 {
 }

 public synchronized static UserManager getInstance()
 {
  if (!initialized)
   doInitialize();
  return userManager;
 }

 private static boolean initialized = false;

 private static synchronized void doInitialize()
 {
  if (!initialized)
  {
   userManager = new UserManagerImpl();
   initialized = true;
  }
 } 
 

 /**
  * @param args
  */
 public static void main(String[] args) {
  
  
  UserManager um1=UserManagerFactory.getInstance();
  
  UserManager um2=UserManagerFactory.getInstance();
  
  UserManager um3=UserManagerFactory.getInstance();
  
  System.out.println("um1="+um1);
  System.out.println("um2="+um2);
  System.out.println("um3="+um3);
  
  um1.addUser();
  um2.addUser();
  um3.addUser();
  

  
 }

}

 

 

 

时间: 2024-08-03 23:13:48

单态设计模式的相关文章

浅析php单态设计模式之单例模式的理解

1.单态设计模式含义: 单态模式的主要作用是保证在面向对象编程设计中,一个类只能有一个实例对象存在.作为对象的创建模式,单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统全局地提供这个实例.它不会创建实例副本,而是会向单例类内部存储的实例返回一个引用. 2.单台模式的三个关键点: ① 需要一个保存类的唯一实例的静态成员变量: ②构造函数和克隆函数必须声明为私有的,防止外部程序new类从而失去单例模式的意义: ③必须提供一个访问这个实例的公共的静态方法(通常为getInstance方法)

php单态设计模式(单例模式)实例_php技巧

单态设计模式也叫单例模式: 1.单态设计模式含义: 单态模式的主要作用是保证在面向对象编程设计中,一个类只能有一个实例对象存在.作为对象的创建模式,单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统全局地提供这个实例.它不会创建实例副本,而是会向单例类内部存储的实例返回一个引用. 2.单台模式的三个关键点: ① 需要一个保存类的唯一实例的静态成员变量: ②构造函数和克隆函数必须声明为私有的,防止外部程序new类从而失去单例模式的意义: ③必须提供一个访问这个实例的公共的静态方法(通常为

单态设计模式简单例子

package com.yanek.test; public class Singleton { private static Singleton single = new Singleton(); private Singleton(){} public Singleton getInstance(){ return single; } }

设计模式学习笔记(九)—Singleton模式

<设计模式>一书对Singleton模式是这样描述的: 保证一个类只有一个实例,并提供一个访问它的全局访问点. 这个模式比较简单,下面给出一个例子: public class Singleton { private static Singleton instance; private Singleton(){ } public static Singleton getInstance(){ if(instance==null) instance=new Singleton(); return

JavaWeb前的准备--Java基础增强

问题描述 /**引入增强for循环的原因:在JDK5以前的版本中,遍历数组或集合中的元素,需先获得数组的长度或集合的迭代器,比较麻烦!因此JDK5中定义了一种新的语法--增强for循环,以简化此类操作.增强for循环只能用在数组.或实现Iterator接口的集合类上语法格式:for(变量类型变量 :需迭代的数组或集合){}*///java中的增强for循环int[]arry={1,2,3,4};for(inti:arr){System.out.println{i};}//for循环只适合取值,而

采用commons-configuration包实现属性文件读取的工具类

代码如下:   package com.yanek.base; import org.apache.commons.configuration.CompositeConfiguration; import org.apache.commons.configuration.ConfigurationException; import org.apache.commons.configuration.PropertiesConfiguration; public class PropManager

一个关于构造函数的小问题

问题描述 请问各位亲,为什么有的class它的构造函数加了一个public关键词,而有的却没有呢?这样的不同时基于什么样的考虑呢?谢谢! 解决方案 解决方案二:基于作用域,就类似于一个变量或者方法有四种作用域,private,default,protected,public.解决方案三:每一个类,就算你不写构造方法,都会有一个默认的public的空的构造方法,只不过隐藏了.这个public是定义这个构造方法,在什么情况下是否可以使用.和别的普通方法是一样的.如果你只有一个private的构造方法

Java面向对象基础--构造方法私有化

1.对构造方法进行封装 class Singleton{ private Singleton(){ // 将构造方法进行了封装,私有化 } public void print(){ System.out.println("Hello World!!!") ; } }; 2.使用 被私有化构造方法的Singleton类,不能在外部直接实例化. class Singleton{ private Singleton(){ // 将构造方法进行了封装,私有化 } public void pri

PHP单例模式总结教程

相关文章:析php单态设计模式之单例模式的理解 相关文章:php设计模式--单例模式(Singleton)的常见应用场景<   单例模式,就是保持一个对象只存在一个实例.并且为该唯一实例提供一个全局访问点(一般是一个静态的getInstance方法).单例模式应用场景非常广泛,例如: 数据库操作对象 日志写入对象 全局配置解析对象等 这些场景的共同特征是从业务逻辑上来看运行期间改对象却是只需要一个实例.不断new多个实例会增加不必要的资源消耗.全局调用便利.下面分别说明这三个方面: 1. 业务上