定义:运用共享技术有效的支持大量细粒度的对象
java
类型:结构型模式 git
顺口溜:适装桥组享代外github
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); } }
享元模式通常是给出本地内存资源节省的一个方案,并不适合互联网上的分布式应用的状况,不过享元模式对于排他性的要求资源的控制,是个不错的选择的。分布式
本系列文章源码地址,https://github.com/amosli/dp 欢迎Fork & Star !!ide