简单工厂模式

简单工厂模式又 叫静态工厂方法模式(Static FactoryMethod Pattern),是通过专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类。

涉及7个类。

1、Operation 类 抽象类

package factory;

public abstract class Operation {
	public abstract float getRrsult(float firstNumber,float secondNumber);  --单词写错Result
}

2、+类 继承Operation 类

package factory;

public class Jia extends Operation {

	@Override
	public float getRrsult(float firstNumber, float secondNumber) {
		// TODO Auto-generated method stub
		return firstNumber+secondNumber;
	}

}

3、- 类 继承 Operation 类

package factory;

public class Jian extends Operation {

	@Override
	public float getRrsult(float firstNumber, float secondNumber) {
		// TODO Auto-generated method stub
		return firstNumber-secondNumber;
	}

}

4、* 类 继承 Operation 类

package factory;

public class Cheng extends Operation {

	@Override
	public float getRrsult(float firstNumber, float secondNumber) {
		// TODO Auto-generated method stub
		return firstNumber*secondNumber;
	}

}

5、/ 类 继承 Operation 类

package factory;

public class Chu extends Operation {

	@Override
	public float getRrsult(float firstNumber, float secondNumber) {
		// TODO Auto-generated method stub
		return firstNumber/secondNumber;
	}

}

6、Factory 类:用来匹配生成 ±*/方法。

package factory;

public class Factory {
	public static Operation getOperation(String Flag){
		Operation o = null ;
		switch (Flag) {
		case "+": o = new Jia() ;break;
		case "-": o = new Jian();break;
		case "*": o = new Cheng();break;
		case "/": o = new Chu();break;	
		default: break;
		}
		return o ;
	}
}

7、计算器(JiSuanQi )类

package factory;

import java.util.Scanner;

public class JiSuanQi {
	public static void main(String[] args) {
		Scanner in = new  Scanner(System.in);
		System.out.println("请输入第一个数字:");
		float firstNum = in.nextFloat();
		System.out.println("请输入运算符号:");
		String Flag = in.next();
		System.out.println("请输入第二个数字:");
		float secondNum = in.nextFloat();
		System.out.println(count(firstNum,secondNum,Flag));
		
	}

	private static float count(float firstNum, float secondNum, String Flag) {
		// TODO Auto-generated method stub
		//通过工厂类获取对象
		Operation operation = Factory.getOperation(Flag);
		return operation.getRrsult(firstNum, secondNum);
	}
}

友情链接:参考文章

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值