用反射改进工厂模式
2015-12-16 14:20
316 查看
原来的工厂模式代码的局限在于每当我们添加一个接口的子类时,工厂类的代码必须改动,我们可以用反射来改进这一点。代码如下:
package com.test; interface Fruit{ public void eat(); } class Apple implements Fruit{ @Override public void eat() { System.out.println("eat apple!"); } } class Orange implements Fruit{ @Override public void eat() { System.out.println("eat orange!"); } } class Factory{ public static Fruit getInstance(String name){ Fruit f = null; try { Class<?> cls = Class.forName(name); f = (Fruit)cls.newInstance(); } catch (Exception e) { e.printStackTrace(); } return f; } } public class TestDemo { public static void main(String[] args) { Fruit f = Factory.getInstance("com.test.Apple"); f.eat(); f = Factory.getInstance("com.test.Orange"); f.eat(); } }
相关文章推荐
- c# 根据中文汉字获取到拼音
- map 常用方法
- eclipse 安装本地adt插件
- vs2008下MFC中采用ado连接MySQL(ODBC、非ODBC或C API方式)
- Linux磁盘与块设备名的对应问题
- js 为label标签和div标签赋值
- 由 Session 和 Cookie 的区别说起
- Maven_POM配置详解
- Java中的String类
- Android ActionBar完全解析,使用官方推荐的最佳导航栏(上)
- iOS实现麦克风捕获和AAC编码
- Windows程序设计--击键消息和字符消息
- Spark SQL 之 Migration Guide
- English Learning
- 199. Binary Tree Right Side View (Tree, Stack)
- jmeter之如何减负-实现稳定超高并发测试(性能调优)
- 百度地图(截图)
- GDB十分钟教程
- 关于CoreData的多线程安全问题
- iOS WebP转换工具