动态工厂模式---(3)
来源:互联网 发布:mac地址能不能修改 编辑:程序博客网 时间:2024/04/27 07:29
动态工厂模式:
虽然简单工厂模式的使用消除了客户端对接口实例的依赖,将其实例化交给工厂类来实现,但是工厂类对接口实例的依赖依然很强,当需要增加新的子类时,不仅需要编写相应的子类实现,还需要修改工厂类支持。这种强依赖不利于系统的扩展。
工厂类的唯一职责就是生产不同的对象。那么除了用new 来创建对象之外还有没有其他的方法?这就用到类的反射了。看下面的代码:
class Factory2{public static Operator createOperator(String name) throws Exception{try{Class clazz = Class.forName(name); //通过反射得到类的Class对象return (Operator) clazz.newInstance(); //通过class对象创建实例}catch (ClassNotFoundException e){e.printStackTrace();return null;}}}
public class Test{public static void main(String[] args) throws Exception{Factory2 factory = new Factory2();Operator operator = factory.createOperator("OperatAdd"); //如果使用减法运算,只需更改传入的参数operator.setOperatA(2);operator.setOperatB(3);System.out.println(operator.getResult());}}
0 0
- 动态工厂模式---(3)
- 简单工厂模式(工厂模式3)
- 动态的工厂模式
- (3)工厂模式
- 动态工厂模式代码实例
- (3)抽象工厂模式
- 设计模式(3)-工厂方法模式
- 设计模式(3):抽象工厂模式
- 设计模式(3):抽象工厂模式
- 设计模式(3):抽象工厂模式
- Android设计模式(3)----工厂模式
- 设计模式(3)-工厂模式
- 工厂模式(简单工厂、工厂方法)
- 工厂模式(工厂方法模式,抽象工厂模式) Java
- 工厂模式(简单工厂模式、工厂方法模式)
- 静态工厂模式(简单工厂模式)
- 简单工厂模式(静态工厂模式)
- 工厂模式(一)--简单工厂模式
- Batch Normalization & Layer Normalization
- c++问题集锦之--无法启动程序,系统找不到指定文件
- 正则表达式转义字符
- 十分钟玩转 jQuery、实例大全
- 各LaunchMode的使用场景
- 动态工厂模式---(3)
- Cookie和session区别
- Ubuntu16.04安装串口调试工具gtkterm
- ScrollerView中嵌套多个ListView,ListView都展示出
- 顺序表应用3:元素位置互换之移位算法
- Marching Cubes
- 前清时期坐过堂
- Codeforces Round #305 (Div. 1) A. Mike and Frog(数学)
- android studio 提高编译的速度,安装apk过慢问题解决