博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
简单工厂模式
阅读量:6185 次
发布时间:2019-06-21

本文共 1727 字,大约阅读时间需要 5 分钟。

通过工厂来返回不同的对象,可使用同一种方法。

抽象类:

public abstract class Operation {    private double numA;    private double numB;    private double result;        public double getNumA() {        return numA;    }    public void setNumA(double numA) {        this.numA = numA;    }    public double getNumB() {        return numB;    }    public void setNumB(double numB) {        this.numB = numB;    }    public abstract double getResult();    }

加减乘数实现类:

public class AddOperation extends Operation {        public double getResult() {                return super.getNumA()+super.getNumB();    }    }public class SubOperation extends Operation  {    public double getResult() {        return super.getNumA()-super.getNumB();    }}public class MulOperation extends Operation  {    public double getResult() {        return super.getNumA()*super.getNumB();    }}public class DivOperation extends Operation {    @Override    public double getResult() {        return super.getNumA()/super.getNumB();    }}

工厂类与实现:

public class OperationFactory {    public  static  Operation createOperation(String type){        switch (type) {        case "+":            return new AddOperation();        case "-":            return new SubOperation();        case "*":            return new MulOperation();        case "/":            return new DivOperation();        default:            break;        }        return null;            }        public static void main(String[] args) {        Operation operation;        operation=OperationFactory.createOperation("+");        operation.setNumA(1);        operation.setNumB(1);        System.out.println(operation.getResult());    }}

这样通过控制显示层的代码即可控制整个实现逻辑。。。

 

转载于:https://www.cnblogs.com/blackdeng/p/8995247.html

你可能感兴趣的文章
windows下安装mysql5.7 (爬过多次坑)总结
查看>>
两人一组,注册账号密码,注册COOKIE是否能够登陆?
查看>>
Object-C中使用NSKeyedArchiver归档(将各种类型的对象存储到文件中)
查看>>
一位大牛整理的python资源
查看>>
设计模式 单例模式(Singleton)
查看>>
jqurey 隐藏
查看>>
Cisco Eigrp SIA 理解
查看>>
虚拟机虚拟网卡作用
查看>>
我的友情链接
查看>>
如何做好一个项目经理
查看>>
Tex之版面布局设计
查看>>
Android调用系统照相机拍摄视频并将其拷贝到制定的文件夹下
查看>>
php的sso单点登录实现方法
查看>>
javascript eval和JSON之间的联系
查看>>
iOS沙盒(sandbox)机制及获取沙盒路径
查看>>
Jean同学的Proguard私房物语
查看>>
移动互联网的发展需cdn最基础
查看>>
为阿里云增加数据盘(LVM管理)
查看>>
整数划分问题
查看>>
用Apache Spark进行大数据处理——第一部分:入门介绍
查看>>