首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

多例方式

2012-09-02 
多例模式多例模式的特点1)多例类可以有多个实例2)必须自行创建3)向外界提供自己的实例有上限多例模式无

多例模式
多例模式的特点
1)多例类可以有多个实例;
2)必须自行创建;
3)向外界提供自己的实例;

有上限多例模式
无上限多例模式

有状态: Mutable Multiton
无状态: Immutable Multiton

多例模式使用的时候应该注意,不是提供一个对外的接口,然后无限的new,无限new的,那是静态工厂方法。多例模式侧重存在的对象,就不new,或者是拿新的对象替换掉他。进而提高性能,在并发的情况下,还要考虑同步问题。下面是一个示例代码。

package CreationalPattern.Multiton;import java.util.HashMap;public class TestMultition {public static void main(String[] args){MyClass m1 = MyClass.getInstance("m1");m1.setName("phl");MyClass m2 = MyClass.getInstance("m2");MyClass m3 = MyClass.getInstance("m1");System.out.println(m1.getName());System.out.println(m2.getName());System.out.println(m3.getName());}}class MyClass{private static HashMap<String,MyClass> hm = new  HashMap<String,MyClass>();private String name ;private MyClass(){}private MyClass(String name){this.name = name;}//直接覆盖存在的类public static MyClass getInstance(String name){if(name != null && !"".equals(name)){hm.put(name, new MyClass(name));}return hm.get(name);}public void setName(String name){this.name = name;}public String getName(){return this.name;}}

热点排行