设计模式----享元模式UML和实现代码

1、什么是享元模式?

定义:运用共享技术有效的支持大量细粒度的对象
java

类型:结构型模式 git

顺口溜:适装桥组代外github

2、享元模式UML

3、JAVA代码实现

package com.amosli.dp.structural.flyweight;

public abstract class Flyweight {
	abstract void operation(int extrinsicstate);
}

package com.amosli.dp.structural.flyweight;

public class ConcreteFlyweight extends Flyweight {

	@Override
	void operation(int extrinsicstate) {
		System.out.println(this.getClass().getName() + extrinsicstate);
	}

}

	package com.amosli.dp.structural.flyweight;
	
	public class ConcreteFlyweight extends Flyweight {
	
		@Override
		void operation(int extrinsicstate) {
			System.out.println(this.getClass().getName() + extrinsicstate);
		}
	
	}



package com.amosli.dp.structural.flyweight;

import java.util.HashMap;

public class FlyweightFactory {
	private HashMap<String, Flyweight> flys = new HashMap<String, Flyweight>();

	public FlyweightFactory() {
		flys.put("x", new ConcreteFlyweight());
		flys.put("y", new ConcreteFlyweight());
		flys.put("z", new ConcreteFlyweight());
	}

	public Flyweight getFlyweight(String key) {
		return flys.get(key);
	}
}



4、使用场景

    一、当咱们发现某个类型的对象有大量的实例时,咱们是否能够对这些实例进行分类,通过分类后,咱们发现只有不多的类别的状况下。

   二、咱们发现经过使用享元模式后可以提升系统的性能和不会带来更多的复杂度时。

      享元模式通常是给出本地内存资源节省的一个方案,并不适合互联网上的分布式应用的状况,不过享元模式对于排他性的要求资源的控制,是个不错的选择的。分布式

5、源码地址

本系列文章源码地址,https://github.com/amosli/dp  欢迎Fork  & Star !!ide

相关文章
相关标签/搜索