《Java与模式》学习笔记(7)——Multiton
来源:互联网 发布:javaweb网上商城源码 编辑:程序博客网 时间:2024/05/16 05:44
所谓的多例模式(Multiton Pattern),实际上就是单例模式的推广。作为对象的创建模式,多例模式或多例类有以下的特点:
- 多例类可有多个实例。
- 多例类必须自己创建、管理自己的实例,并向外界提供自己的实例。
按照实例数目是否有上限,多例模式可以分为有上限多例类和无上限多例类;如同单例类可以分成有状态的和没有状态的两种一样,多例类也可以分成有状态的和没有状态的两种。多例对象的状态如果是可以在加载后改变的,那么这种多例对象叫做可变多例对象(Mutable Multiton);如果多例对象的状态在加载后不可以改变,那么这种多例对象叫做不变多例对象(Immutable Multiton)。显然不变多例类的情形较为简单,而可变多例类的情形较为复杂。
package com.javapatterns.multilingual.dice;
import java.util.Random;
import java.util.Date;
public class Die ...{
private static Die die1 = new Die();
private static Die die2 = new Die();
private Die() ...{}
public static Die getInstance(int whichOne) ...{
if (whichOne == 1) ...{
return die1;
} else ...{
return die2;
}
}
public synchronized int dice() ...{
Date d = new Date();
Random r = new Random(d.getTime());
int value = r.nextInt();
value = Math.abs(value);
value = value % 6;
value += 1;
System.out.println(value);
return value;
}
}
import java.util.Random;
import java.util.Date;
public class Die ...{
private static Die die1 = new Die();
private static Die die2 = new Die();
private Die() ...{}
public static Die getInstance(int whichOne) ...{
if (whichOne == 1) ...{
return die1;
} else ...{
return die2;
}
}
public synchronized int dice() ...{
Date d = new Date();
Random r = new Random(d.getTime());
int value = r.nextInt();
value = Math.abs(value);
value = value % 6;
value += 1;
System.out.println(value);
return value;
}
}
package com.javapatterns.multilingual.dice;
public class Client ...{
private static Die die1;
private static Die die2;
public static void main(String[] args) ...{
die1 = Die.getInstance(1);
die2 = Die.getInstance(2);
die1.dice();
die2.dice();
}
}
public class Client ...{
private static Die die1;
private static Die die2;
public static void main(String[] args) ...{
die1 = Die.getInstance(1);
die2 = Die.getInstance(2);
die1.dice();
die2.dice();
}
}
- 《Java与模式》学习笔记(7)——Multiton
- 7种创建型模式 之5 multiton 多例模式 《Java与模式》学习笔记
- java与模式 多例模式 multiton
- 设计模式学习与实践(三)----多例模式(multiton)
- 设计模式学习笔记--单例(Singleton)和多例(Multiton)
- java设计模式(2/23)-多例模式(Multiton Pattern)
- 《Java与模式》学习笔记(5)——Singleton
- 《Java与模式》学习笔记:设计模式——原则
- 多例(Multiton)模式
- 多例(Multiton)模式的Java实现[00原创]
- 创建型模式:Multiton(多例模式)
- java与模式学习笔记(一)
- 《Java与模式》学习笔记之四——适配器(Adapter)模式
- 《Java与模式》学习笔记之四——适配器(Adapter)模式
- 《Java与模式》学习笔记:设计模式——树结构(合成模式+模板模式)
- 《Java与模式》学习笔记
- 《JAVA与模式》学习笔记(一)——软件的可维护性与可复用性
- 《Java与模式》学习笔记:设计模式——迭代子(Iterator)模式
- ASP.NET程序中常用的三十三种代码
- Linux 全程指导
- ubuntu 上配置lxr
- 在Ubuntu中安装rpm包
- 寻求工控、自动化合作者建立工控网站!(长期有效)
- 《Java与模式》学习笔记(7)——Multiton
- 职场中13条军规无法避讳
- 基于.NET 2.0的GIS开源项目SharpMap分析手记(六):SharpMap的功能扩展之路
- CSDN英雄会上会英雄
- 接触ER图
- ASP.NET常用代码
- 模拟PCB
- 家
- 男人的承诺、男人的感情、男人的理由