Java 8下的工厂模式
来源:互联网 发布:win7网络小图标不见了 编辑:程序博客网 时间:2024/06/16 13:25
Java 8下的工厂模式
你肯定厌倦了传统工厂模式的switch或者if else 模式, 如下
public static Factory{ public Sample creator(String string){ switch(string){ "apple": return new Apple(); "car": return new Car(); "plane": return new Plane(); } }}其中 Apple, Car, Plane 均继承 Sample
但是,你有不能使用Map,这样会造成,不必要的内存开销。
不过Java8的到来,函数成为了一等功能,那就不一样了。
我们来改写上面的列子
public static Factory{ final static Map<String, Supplier<Sample>> map = new HashMap<>(); static { map.put("apple", Apple::new); map.put("car", Car::new); map.put("plane", Plane:: new); } public static Sample creator(String string){ Supplier<Sample> supplier = map.get(string); if(supplier != null) return supplier.get(); throw new IllegalArgumentException("无效参数"); }}
这儿我们利用了函数的懒加载特性。只用当supplier.get()调用时,Sample的子类才初始化,这样就不会多占用内存。当然这也精简了你的代码。
0 0
- Java 8下的工厂模式
- java的工厂模式
- Java的工厂模式
- java的工厂模式
- Java的工厂模式
- java的工厂模式
- java的工厂模式
- java的工厂模式
- [工厂模式]JAVA设计模式 – 工厂模式的案例
- Java的工厂模式(Factory)
- java工厂模式的简介
- Java的工厂模式例子
- java的工厂模式理解
- java的工厂模式图解
- java工厂模式的理解
- JAVA的设计模式之工厂模式
- Java设计模式--工厂模式的自述
- Java 常用的设计模式-工厂模式
- Java 内存区域与内存溢出
- 对于HashMap的理解
- iOS项目关于Other Linker Flags添加-Obj-C等
- 生成随机数方法
- 在Android上使用Tensorflow
- Java 8下的工厂模式
- SSL工作原理
- Spring与MyBatis整合(学习笔记)
- Struts2+Spring+Hibernate 三大框架的合并集成
- Spring AOP源码解读1 - 程序入口
- 你不知道的javascript(三)
- 计算机组成原理期末复习_清华大学_2016秋
- Atitit 补充说明 sql知识图谱与线路图attilax总结补充说明
- laravel维护模式