用抽象工厂模式做简易计算器
时间: 2023-11-15 10:51:42 浏览: 35
抽象工厂模式是一种创建型设计模式,它提供了一种将一组相关的对象创建过程封装起来的方式,使得客户端可以通过一个通用的接口来创建多个具体的对象,而无需关心它们的具体实现。
在简易计算器中,我们可以使用抽象工厂模式来创建不同类型的运算符对象,例如加法、减法、乘法、除法等。
首先,我们需要定义一个抽象工厂,用于创建各种类型的运算符对象:
```java
public abstract class OperationFactory {
public abstract Operation createOperation();
}
```
然后,我们可以创建具体的运算符工厂类,例如加法工厂、减法工厂、乘法工厂和除法工厂:
```java
public class AddFactory extends OperationFactory {
public Operation createOperation() {
return new AddOperation();
}
}
public class SubtractFactory extends OperationFactory {
public Operation createOperation() {
return new SubtractOperation();
}
}
public class MultiplyFactory extends OperationFactory {
public Operation createOperation() {
return new MultiplyOperation();
}
}
public class DivideFactory extends OperationFactory {
public Operation createOperation() {
return new DivideOperation();
}
}
```
每个具体工厂类都实现了抽象工厂类的抽象方法,用于创建相应类型的运算符对象。
最后,我们可以使用这些具体工厂类来创建不同类型的运算符对象:
```java
public class Calculator {
public static void main(String[] args) {
OperationFactory factory = new AddFactory();
Operation operation = factory.createOperation();
System.out.println(operation.getResult(1, 2)); // 输出:3
factory = new SubtractFactory();
operation = factory.createOperation();
System.out.println(operation.getResult(2, 1)); // 输出:1
factory = new MultiplyFactory();
operation = factory.createOperation();
System.out.println(operation.getResult(2, 3)); // 输出:6
factory = new DivideFactory();
operation = factory.createOperation();
System.out.println(operation.getResult(6, 3)); // 输出:2
}
}
```
在上面的例子中,我们使用具体工厂类来创建不同类型的运算符对象,并使用这些对象来进行简单的计算。这个例子展示了如何使用抽象工厂模式来创建一组相关的对象,并将它们封装起来以便于客户端使用。