测试类:
1 public class Test { 2 3 public static void main(String[] args) { 4 Flyweight fly1 = FlyweightFactory.getFlyweight("a"); 5 fly1.action(1); 6 7 Flyweight fly2 = FlyweightFactory.getFlyweight("a"); 8 System.out.println(fly1 == fly2); 9 10 Flyweight fly3 = FlyweightFactory.getFlyweight("b"); 11 fly3.action(2); 12 System.out.println(fly1==fly3); 13 14 Flyweight fly4 = FlyweightFactory.getFlyweight("c"); 15 fly4.action(3); 16 17 Flyweight fly5 = FlyweightFactory.getFlyweight("d"); 18 fly5.action(4); 19 20 System.out.println(FlyweightFactory.getSize()); 21 } 22 }1 import java.util.HashMap; 2 import java.util.Map; 3 4 public class FlyweightFactory { 5 6 private static Map<String, Flyweight> flyweights = new HashMap<String, Flyweight>(); 7 8 public FlyweightFactory(String arg) { 9 flyweights.put(arg, new FlyweightImpl()); 10 } 11 12 public static Flyweight getFlyweight(String key) { 13 if (flyweights.get(key) == null) { 14 flyweights.put(key, new FlyweightImpl()); 15 } 16 return flyweights.get(key); 17 } 18 19 public static int getSize() { 20 return flyweights.size(); 21 } 22 }
public interface Flyweight { void action(int arg); }
1 public class FlyweightImpl implements Flyweight { 2 3 public void action(int arg) { 4 // TODO Auto-generated method stub 5 System.out.println("参数值: " + arg); 6 } 7 }
转载于:https://www.cnblogs.com/huzi007/p/4045242.html