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

|