黑马程序员-设计模式-工厂模式
来源:互联网 发布:西岐网络我有上将 编辑:程序博客网 时间:2024/06/08 18:11
——- android培训、java培训、期待与您交流! ———-
在面向对象编程中, 最通常的方法是一个new操作符产生一个对象实例,new操作符就是用来构造对象实例的。但是在一些情况下, new操作符直接生成对象会带来一些问题。举例来说, 许多类型对象的创造需要一系列的步骤: 你可能需要计算或取得对象的初始设置; 选择生成哪个子对象实例; 或在生成你需要的对象之前必须先生成一些辅助功能的对象。我们可以建立一个工厂来创建对象。工厂模式有三种类型,1简单工厂模式,2工厂方法模式,3抽象工厂模式。一个简单工厂模式的例子:
class OperationFactory { public static Operation createOperation(String operate) { Operation oper; switch (operate) { case "+": oper = new OperationAdd(); case "-": oper = new OperationSub(); case "*": oper = new OperationMul(); case "/": oper = new OperationDiv(); break; } return oper; } }
客户端的应用
Operation oper;oper= OperationFacory.createOperate("+");oper.NumberA=1;oper.NumberB=2;double result=oper.GetResult();
工厂方法模式的实现:
先建立一个工厂接口
public interface IFactory { Operation CreateOperation();}
然后每个运算方式各建一个具体工厂去实现这个接口:
public class AddFactory implements IFactory{ public Operation CreateOperation(){ return new OperationAdd(); }}public class SubFactory implements IFactory{ public Operation CreateOperation(){ return new OperationSub(); }}public class MulFactory implements IFactory{ public Operation CreateOperation(){ return new OperationMul(); }}public class DivFactory implements IFactory{ public Operation CreateOperation(){ return new OperationDiv(); }}
客户端这样实现:
IFactory operFactory=new AddFactory();oper= OperationFacory.createOperate("+");oper.NumberA=1;oper.NumberB=2;double result=oper.GetResult();
简单工厂模式的最大优点在于工厂类中包含了必要的逻辑判断,根据客户选择的条件动态化实例相关的类,对于客户端来说,去除了与具体产品的依赖。工厂方法模式(Factory Method),定义一个用于创建对象的接口,让子类决定实例化哪一个类,工厂方法使一个类的实例化延迟到其子类中。工厂方法模式实现时,客户端需要决定实例化哪一个工厂来实现类,选择判断的问题还是存在的,也就是说工厂方法吧简单的工厂内部逻辑判断移到了客户端来进行,你想要加功能,本来是改工厂类的,而现在是修改客户端。
而抽象工厂模式提供一个创建一系列相关或相互依赖对象的接口,而无须指定他们具体的类。它针对的是有多个产品的等级结构。而工厂方法模式针对的是一个产品的等级结构。
0 0
- 黑马程序员---工厂设计模式
- 黑马程序员---设计模式之工厂模式
- 黑马程序员-设计模式-工厂模式
- 黑马程序员:单例,工厂设计模式
- 《黑马程序员》 接口之工厂设计模式
- 《黑马程序员》 工厂设计模式深入分析
- 黑马程序员-工厂模式
- 黑马程序员:初识设计模式,简单工厂模式的计算器
- 黑马程序员-设计模式之简单工厂模式(引入)
- 黑马程序员-简单工厂模式,工厂模式
- 黑马程序员_工厂模式
- 黑马程序员-抽象工厂模式
- 黑马程序员-工厂模式总结
- 黑马程序员_JAVA设计模式之简单工厂
- 黑马程序员——Java设计模式之工厂系列
- 黑马程序员 java 设计模式之 工厂方法
- 黑马程序员:设计模式
- 黑马程序员-设计模式
- App启动界面效果设计
- java判断循环语句
- SQL表关联中的逻辑与效率
- java容器类类库的关系
- FZU1894 志愿者选拔
- 黑马程序员-设计模式-工厂模式
- 微信号推荐html
- TCP建立及关闭过程
- 负载均衡 lvs+keepalived
- 素数因子
- Uboot分析
- 分享robotium滑动屏幕的方法
- 喜羊羊系列之【初级驱动笔记一】
- ubuntu下root用户和普通用户的切换命令