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之工厂模式
原创
©著作权归作者所有:来自51CTO博客作者无名同学的原创作品,请联系作者获取转载授权,否则将追究法律责任
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
java模式之工厂模式
一:为什么用工厂模式文件IO的操作我们会经常用下的代码了: Fi...
设计模式 工厂模式 读写文件 iphone -
java设计模式之工厂模式01 ~ 简单工厂模式
为什么要用工厂模式?一句话解释:工厂模式的使用主要目的就是在开发中创建对象的时候降低不必要的耦合性和错误,并降低代码的重复度。
java iphone 简单工厂模式 小米手机 -
java 工厂模式java设计模式之工厂模式Java 设计模式 工厂模式 子类