读书人

设计方式之多例模式Multiton

发布时间: 2012-09-07 10:38:15 作者: rapoo

设计模式之多例模式Multiton
多例模式

public class Die {    private static Die die1 = new Die();    private static Die die2 = new Die();    /**     * 私有构造函数保证 外界 无法直接将此类实例化     */    private Die() {    }

/**     * 工厂方法     * @param i     * @return     */    public static Die getInstance(int i) {        switch (i) {            case 0:                return die1;            case 1:                return die2;            default:                return null;        }    }

  /**     * 掷骰子 返回 1-6 之间的随机数     * @return int     */    public synchronized int dice() {        System.out.println("-----------------------------");        Date date = new Date();        Random random = new Random(date.getTime());        //random.nextInt()可能返回 负数        int value = Math.abs(random.nextInt())%6 + 1;        return value;    }}

public class DieTest extends TestCase {    public void testMain(){        Die die1 = Die.getInstance(0);        Die die2 = Die.getInstance(1);        System.out.println(die1.dice());        System.out.println(die2.dice());    }}

读书人网 >软件开发

热点推荐