软件设计模式之工厂模式

软件设计模式之工厂模式实验

一、实验目的

掌握软件设计模式中的工厂模式,能够用工厂模式编写程序,解决实际问题。
二、实验内容与要求

内容:使用工厂模式写一个简单的计算器,能实现加减乘除运算。要求输入两个数,选择运算符,程序便能够计算出结果。程序设计语言可自由选择。
要求:需要用“文字+代码+截图”的形式对实验的主要代码和运行结果进行展示和描述。
三、实验方法

  1. Operation运算类(父类):
public class Operation
{
    private double _numberA = 0;
	private double _numberB = 0;
	
	public double NumberA
	{
		get { return _numberA; }
		set { _numberA = value;}
	}
	public double NumberB
	{
		get { return _numberB; }
		set { _numberB = value;}
	}
	public virtual double GetResult()
	{
		double result = 0;
		return result;
	}
}
  1. 加减乘除类:
class OperationAdd : Operation
{
	public override double GetResult()
	{
		double result = 0;
		result = NumberA + NumberB;
		return result;
	}
}
class OperationSub : Operation
{
	public override double GetResult()
	{
		double result = 0;
		result = NumberA - NumberB;
		return result;
	}
}
class OperationMul : Operation
{
	public override double GetResult()
	{
		double result = 0;
		result = NumberA * NumberB;
		return result;
	}
}
class OperationDiv : Operation
{
	public override double GetResult()
	{
		double result = 0;
		if (NumberB == 0)
			throw new Exception("除数不能为0。");
		result = NumberA / NumberB;
		return result;
	}
}
  1. 简单运算工厂类:
public class OperationFactory
{
	public static Operation createOperate(string operate)
	{
		Operation oper = null;
		switch (operate)
		{
			case "+":
				oper = new OperationAdd();
				break;
			case "-":
				oper = new OperationSub();
				break;
			case "*":
				oper = new OperationMul();
				break;
			case "/":
				oper = new OperationDiv();
				break;
		}
		return oper;
	}
}

在这里插入图片描述

四 、实验结果

简单来说就是创建一个单独的工厂类专门实例化出合适的对象,当然加减乘除类也采用了松耦合,通过多态,返回父类的方式实现了计算器的结果,具备可扩展性。

猜你喜欢

转载自blog.csdn.net/escFAJ/article/details/107771255