设计模式,单元测试,重构是今天的程序员必须掌握的程序设计技术. 设计模式的书都太厚了,看一遍都累个半死,所以我有了这个想法,用最简单的语言和最简单的代码来说明设计模式. 案例描述:     街头 银行取款机一次只可以一个人,用一张卡站它前面提款. 程序: /*  *  银行提款机 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()); //取款  } } 说明:  如果我没有取回磁卡,那么无论多少人使用这个提款机,他使用的都将是我的银行卡,程序的输出为:     我取钱用的是  :我的银行卡     你取钱用的是  :我的银行卡
   
 
  |