设计模式-单例(singleton)模式简说

类别:Java 点击:0 评论:0 推荐:

设计模式,单元测试,重构是今天的程序员必须掌握的程序设计技术.

设计模式的书都太厚了,看一遍都累个半死,所以我有了这个想法,用最简单的语言和最简单的代码来说明设计模式.

案例描述:

    街头 银行取款机一次只可以一个人,用一张卡站它前面提款.

程序:

/*
 *  银行提款机 ATM         
 */
package com.singleton;
public class ATMCash {
 private static ATMCash instance; 
 private String creditCard;
 
 private ATMCash() {  
 }
 
 /**
  * 保证只有一个人一张卡在使用提款机 
  */
 public static synchronized ATMCash getInstance() {
  if (instance == null)
   instance = new ATMCash();
  return instance;
 }

 public String getMoney() {
  return creditCard;
 }
 
 //插入ATM磁卡
 public void setCard(String card) {
  creditCard = card;
 }
 
 //取出ATM磁卡
 public void getCard() {
  creditCard = null;
 }

}

/*
 * 提款
 */
package com.singleton;
public class Singleton {

 public static void main(String[] args) {
  
  //------------下面是我的取款过程--------------
  ATMCash myCash = ATMCash.getInstance();  //来一个人取款
  myCash.setCard("我的银行卡");//插入磁卡
  System.out.println("我取钱用的是  :" +myCash.getMoney()); //取款
  //myCash.getCard(); //取回磁卡
  
  
  //------------下面是你取款过程----------------
  ATMCash yourCash = ATMCash.getInstance(); //来一个人取款
  System.out.println("你取钱用的是  :" + yourCash.getMoney()); //取款
 }
}

说明:

 如果我没有取回磁卡,那么无论多少人使用这个提款机,他使用的都将是我的银行卡,程序的输出为:

    我取钱用的是  :我的银行卡
    你取钱用的是  :我的银行卡

本文地址:http://com.8s8s.com/it/it9806.htm