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

王朝java/jsp·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

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

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

案例描述:

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

程序:

/*

* 银行提款机 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()); //取款

}

}

说明:

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

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

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

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航