大话设计模式读书笔记——简单工厂模式

文章介绍了简单工厂模式的概念,提供了一个使用Java实现的计算器功能的代码示例,包括加、减、乘、除四种运算。简单工厂模式允许根据传入参数动态创建运算类的实例,如需扩展新的运算,只需添加对应子类和更新工厂方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 简单工厂模式

1.1 概念

简单工厂模式的实质是由一个工厂类根据传入的参数,动态决定应该创建哪一个产品类(这些产品类继承自一个父类或接口)的实例。
通俗来的说,到底要实例化谁,将来会不会增加实例化的对象,这就是简单工厂模式需要解决的问题。

1.2 Java实现代码

用简单工厂模式实现一个计算器功能代码:

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

客户端代码

Operation oper = OperationFacotry.createOperate(strOperate);
double result = oper.getResult(numberA,numberB)

Operation运算类:

public abstract class Operation{
	public double getResult(double numberA,double numberB){
		return 0d;
	}
}

加减乘除类:

public class Add extends Operation{
	public double getResult(double numberA,double numberB){
		return numberA+numberB;
	}
}
public class Sub extends Operation{
	public double getResult(double numberA,double numberB){
		return numberA-numberB;
	}
}
public class Mul extends Operation{
	public double getResult(double numberA,double numberB){
		return numberA*numberB;
	}
}
public class Div extends Operation{
	public double getResult(double numberA,double numberB){
		if(numberB==0){
			System.out.println("除数不能为0");
			throw new ArithmeticalException();
		}
		return numberA/numberB;
	}
}

1.3 UML类图

在这里插入图片描述

1.4 补充

  1. 若需要更改加法运算,只需要改Add类
  2. 若需要增加各种复杂运算,比如平方根、立方根、自然对数等,则需要增加相应的运算子类以及修改运算类工厂,在switch中增加分支
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

头盔程序员

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值