简单工厂模式( Simple Factory Pattern )

news/2024/10/15 6:16:19
简单工厂模式(Simple Factory Pattern),在工厂类中对象决定创建出哪一种产品类的实例。这些产品类都实现了相同的接口,或者继承了相同的父类。

结构图

  • Factory工厂角色):它是核心,负责实现创建所有实例的内部逻辑。在工厂类中,提供了一个静态方法,可以直接被外界直接调用,以创建具体产品对象。
  • Product抽象产品角色):具体产品对象的父类或者接口,具体产品对象都是其子类对象。
  • ConcreteProduct具体产品类):它是创建目标,所有创建的对象都充当这个角色的某个具体类的实例。

简单工厂代码

抽象产品角色

public abstract class Operation {/*** 获取两个数运算后的值** @param numA 第一个数* @param numB 第二个数* @return 结果*/public abstract double getResult(double numA, double numB);
}

具体产品类,包括加法、减法、乘法、除法四个运算的具体实现

public class Add extends Operation {@Overridepublic double getResult(double numA, double numB) {return numA + numB;}
}
public class Sub extends Operation {@Overridepublic double getResult(double numA, double numB) {return numA - numB;}
}
public class Mul extends Operation {@Overridepublic double getResult(double numA, double numB) {return numA * numB;}
}
public class Div extends Operation {@Overridepublic double getResult(double numA, double numB) {if (numB == 0) {System.out.println("除数不能为0");}return numA / numB;}
}

工厂类

public class OperationFactory {public static Operation createOperation(String operate) {Operation operation = null;switch (operate) {case "+":operation = new Add();break;case "-":operation = new Sub();break;case "*":operation = new Mul();break;case "/":operation = new Div();break;}return operation;}
}

客户端

class Client {public static void main(String[] args) {Operation operation = OperationFactory.createOperation("+");operation.getResult(1, 1);}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ryyt.cn/news/41777.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

VLAN技术和VLAN间路由

VLAN技术和VLAN间路由 VLAN技术:交换机分割广播域的技术。 VLAN:Virtual LAN 虚拟局域网。 *这里把交换机的物理接口称为端口。 VLAN技术 一、VLAN概述: 1.VLAN本质:逻辑独立的IP子网 通过“路由”设备: 第三层交换机 进行通信 2.优点: 增加网络部署的灵活性(管理员可以…

Java JVM——10.对象实例化内存布局与访问定位

对象实例化对象创建方式★ new:最常见的方式、单例类中调用getInstance的静态类方法,XXXFactory的静态方法。★ Class的newInstance方法:在JDK9里面被标记为过时的方法,因为只能调用空参构造器。★ Constructor的newInstance(Xxx):反射的方式,可以调用空参的,或者带参的…

电脑群控版 - iMessage群发,苹果iMessage短信,苹果iMessage推信,电脑群控版自动换id,完美实现

一、PC电脑版苹果系统(Mac OS)上实现imessage群发总结为以下几种方式: /*MacOS苹果系统,正常情况下,只能安装到苹果公司自己出品的Mac电脑,俗称白苹果,不能安装到各种组装机或者其他品牌的品牌机上,黑苹果的的原理,就是通过一些 “破解补丁” 工具欺骗macOS系统,让苹果系统…

利用perf进行性能分析

对进程进行采集,采集后会在当前目录下生成一个perf.data文件 perf record -g -e cpu-clock --call-graph dwarf [-t 线程id] [-p 进程id]这里只针对cpu时间进行了采样,通过perf list命令还可以看到更多采样事件。简单分析 perf report除此之外还可以把perf.data转为火焰图,具…

PTA4-6次作业

1.前言: 第四次作业难度较前三次更大,新增有多选题、填空题,不仅要考虑错选(直接错)、少选(部分错)和多选(直接错),还需考虑顺序问题(BCD与CBD要求结果相同)这给判断是否正确的难度增加了一个档次,同时还出现了多试卷多人答题的情形,虽然删除了第三次作业中删除题…

win10笔记本网络连接不上,右下角网络设置出现红色叉叉,列表找不到wifi。怎么办?

win+r弹出控制台输入cmd回车,输入services.msc,回车。在弹出的【服务】窗口中拖动滑动按钮一直找,找到Wired AutoConfig以及WLAN AutoConfig以及WWLAN AutoConfig,对这三个分别依次点击启动此服务(如果已经是启动的了,那就点击重启动。),然后也右键--属性将启动类型改为…

ch3 不确定性和风险

不确定性和风险重点阿莱悖论(独立性) 冯诺依曼公式关键 了解奈特关于不确定性的研究及其基本结论; 了解行为经济学对时间不确定性的分析,知道“双曲贴现”的概念并运 用该理论解释相关的经济现象; 熟悉期望效用理论,并能运用期望效用函数测度风险, 掌握风险升水等重要概念…

第4-6次OOP作业总结

一、前言 1.第四次作业(答题判题程序4) 这次作业题目在原先的题型类型上新增了多选题和填空题,考虑到和原来的题目具有相同的属性,我果断选择使用当时刚学的继承来描述这两种新题型信息,但是新题型的分数计算比较复杂,只好多用几个if语句来加强判断了。新增的多名同学多张卷…