设计模式(一):简单工厂模式
来源:互联网 发布:怎样给朋友发淘宝链接 编辑:程序博客网 时间:2024/04/28 16:15
最近在看大话设计模式,为了加深印象,记录一下学习过程。
第一个模式:简单工厂模式,此模式为大话设计模式中第一个设计模式,虽然此模式不属于23种GOF设计模式之一。
简单工厂模式中包含的角色:
工厂类:工厂类利用多态的特性,可以根据客户端的需求,创建不同的具体实现类,并返回一个父类对象
抽象类(父类):如果一些类都需要有同样的方法,可以为这些类抽出一个抽象类作为父类
具体业务实现类(子类):具体的实现类,继承父类,重写父类方法,处理自己的业务逻辑
以一个简单的计算器来举例,假如计算器有加、减、乘、除四种操作,可以为这四种操作抽象出一个父类Operation
/** * 抽象类 */public abstract class Operation { public abstract double compute(double numberA,double numberB);}
加法操作类AddOperation
/** * 加法操作类(具体实现类) */public class AddOperation extends Operation{ @Override public double compute(double numberA,double numberB) { return numberA+numberB; }}
减法操作类
/** * 减法操作类(具体实现类) */public class SubtractOperation extends Operation{ public double compute(double numberA, double numberB) { return numberA-numberB; }}
乘法操作类
/** * 乘法操作类(具体实现类) */public class MultiplyOperation extends Operation{ public double compute(double numberA, double numberB) { return numberA*numberB; }}
除法操作类
/** * 除法操作类(具体实现类) */public class DivideOperation extends Operation { public double compute(double numberA, double numberB) { return numberA/numberB; }}
工厂类:
/** * 工厂类 */public class OperationFactory { public static Operation createOperation(String type){ Operation operation;//抽象类 if("+".equals(type)){ operation=new AddOperation();//具体的实现类 return operation; }else if("-".equals(type)){ operation=new SubtractOperation(); return operation; }else if("*".equals(type)){ operation=new MultiplyOperation(); return operation; }else if("/".equals(type)){ operation=new DivideOperation(); return operation; } return null; }}
客户端:
public class Test { public static void main(String[] args) { //通过工厂去实例化一个加法操作类,并以Operation类返回 Operation operation=OperationFactory.createOperation("+"); System.out.println(operation.compute(100,200));//Operation由加法操作类实例化,即调用加法操作类的compute进行加法计算 }}
参考:
(1)大话设计模式
(2)http://blog.csdn.net/weiwenlongll/article/details/6918164
阅读全文
0 0
- 设计模式(一):简单工厂模式
- 设计模式(一)简单工厂模式
- 设计模式(一)简单工厂模式
- 设计模式(一)简单工厂模式
- 设计模式(一)简单工厂模式
- 设计模式(一):简单工厂模式
- Java设计模式:工厂模式(一)简单工厂模式
- 工厂设计模式一 简单工厂模式
- 设计模式之工厂设计模式(一:简单工厂模式与工厂方法模式)
- 设计模式 一 简单工厂Simple Factory(工厂模式)
- 工厂设计模式(一)--简单工厂模式
- 设计模式一 简单工厂设计模式
- 设计模式(一):策略模式+简单工厂模式
- 设计模式(一) -- 简单工厂
- 设计模式(一)简单工厂
- 设计模式—简单工厂(一)
- 设计模式一 简单工厂
- 设计模式一:简单工厂
- 数据库 rbac 中的表
- springmvc session丢失 重新登录
- 跳台阶
- stm8——LED流水灯实现
- TX1上使用Faster-RCNN训练自己的训练集遇到的问题与解决
- 设计模式(一):简单工厂模式
- 动态语言
- [php学习笔记]与类有关的魔术方法、魔术常量、系统函数
- WebService中CXF的简单的配置和应用(ssm框架)
- SpringMVC 重定向
- SpringMVC-文件上传
- 华中农业大学第五届程序设计大赛 DGCD [fibonacci+矩阵乘法]【数学】
- 如何编译Docker源码
- php和html5的混合编写