2 设计模式之工厂方法(二)
来源:互联网 发布:网络游戏服务端编程 编辑:程序博客网 时间:2024/06/06 03:25
上一篇关于设计模式中“简单工厂”模式的介绍让我们知道,它虽然有自己的优点,工厂类中包括了必要的逻辑判断,让客户端选择实例化相应的类,这样的好处就是除去了下具体实现的依赖,但是在我们也分析了在面临添加新功能时,它会违背设计模式里面的“开放-封闭”原则,于是引出了今天介绍的工厂方法模式,它相比简单工厂的不同之处就是它把选择实例化的类移到了客户端,这样的话在添加新功能时仅仅只需要添加新功能和修改相应的客户端组装代码即可,代码如下:
1 工厂抽象接口IOperationFactory.javapackage com.ops.factory.method.base;import com.ops.factory.Operation;public interface IOperationFactory {public Operation createOperation();}下面是与运算相关的具体工厂实现类2 AddOperationFactory.javapackage com.ops.factory.method.base;import com.ops.factory.AddOperation;import com.ops.factory.Operation;public class AddOperationFactory implements IOperationFactory {@Overridepublic Operation createOperation() {return new AddOperation();}}3 SubOperationFactory.javapackage com.ops.factory.method.base;import com.ops.factory.Operation;import com.ops.factory.SubOperation;public class SubOperationFactory implements IOperationFactory {@Overridepublic Operation createOperation() {return new SubOperation();}}4 MultiOperationFactory.javapackage com.ops.factory.method.base;import com.ops.factory.MultiOperation;import com.ops.factory.Operation;public class MultiOperationFactory implements IOperationFactory {@Overridepublic Operation createOperation() {return new MultiOperation();}}5 DivOperationFactory.javapackage com.ops.factory.method.base;import com.ops.factory.DivOperation;import com.ops.factory.Operation;public class DivOperationFactory implements IOperationFactory {@Overridepublic Operation createOperation() {return new DivOperation();}}下面是客户端组装代码:package com.ops.factory.method.main;import org.junit.Test;import com.ops.factory.Operation;import com.ops.factory.method.base.AddOperationFactory;import com.ops.factory.method.base.IOperationFactory;public class FactoryMethodClient {@Testpublic void test() {int numberA = 35;int numberB = 7;IOperationFactory opFactory = new AddOperationFactory();Operation addOp = opFactory.createOperation();int result = addOp.getResult(numberA, numberB);System.out.println("resut = " + result);}}
0 0
- 2 设计模式之工厂方法(二)
- 设计模式学习(二)之工厂模式(简单工厂+工厂方法+抽象工厂)
- 设计模式之工厂模式(二)之工厂方法模式
- 二 设计模式之工厂方法模式
- 设计模式之二:工厂方法模式
- 设计模式之二工厂方法模式
- 设计模式之二:工厂方法模式
- 设计模式之二:工厂方法模式
- Java设计模式之二(工厂方法模式)
- 读书笔记-设计模式(二)之工厂方法模式
- C++设计模式之工厂方法(二)
- 设计模式二之工厂方法
- 设计模式之工厂模式之工厂方法模式(二)
- Java设计模式(二):工厂模式(Factory)之工厂方法
- 设计模式(二)---工厂方法模式
- 设计模式(二)工厂方法模式
- 设计模式(二)--工厂方法模式
- Php设计模式之工厂模式(二)【工厂方法模式 Factory Method】
- CorelDRAW X4 SP2 简体中文正式版 v14.0 精简增强版下载
- 程序员的量化交易之路(4)--Esper之事件(3)
- 设计师的工程师思维
- FTP服务器主动与被动模式
- 常用的iOS第三方库
- 2 设计模式之工厂方法(二)
- laravel5用户模型迁移文件的错误处理
- iOS开发 - 文件压缩与解压缩
- 动态内存分配(malloc、free、calloc、realloc)
- UICollectionView详解三:UICollectionViewLayout
- 第三方库
- iOS运行流程
- 从贝壳到电子货币:人类未来的支付会怎样?
- DNS的VIEW功能