interface Number { } class One implements Number { } class Two implements Number { } class Three implements Number { } class NumberFactory { final static Map<String, Supplier<Number>> map = new HashMap<>(); static { map.put("one", One::new); map.put("two", Two::new); map.put("three", Three::new); } public static Number createNumber(String number) { Supplier<Number> numberSupplier = map.get(number); if (numberSupplier != null) return numberSupplier.get(); throw new IllegalArgumentException("No such product " + number); } } public class Main { public static void main(String[] args) { Number number = NumberFactory.createNumber("one"); Number number1 = NumberFactory.createNumber("two"); System.out.println(number.getClass()); System.out.println(number1.getClass()); } }
Java8之工厂模式
最新推荐文章于 2023-03-29 23:47:17 发布