Flyweight
:public class Entity { private final String id; public Entity(final String id) { this.id = id; } public String getId() { return id; } }
Factory
:public class EntityFactory { private static final Map<String, Entity> entities = new HashMap<String, Entity>(); public static Entity getEntity(final String id) { final Entity entity; if (entities.containsKey(id)) { entity = entities.get(id); } else { entity = new Entity(id); entities.put(id, entity); } return entity; } }
Flyweight
design pattern:public class FlyweightPatternTest { public static void main(String[] args) { Entity entity11 = EntityFactory.getEntity("1"); Entity entity12 = EntityFactory.getEntity("1"); System.out.println(entity11.equals(entity12)); } }