大话设计模式之--简单工厂模式

以《大话设计模式第一章为例》 计算器

1:抽象类  运算类Operate

/**
 * @author admin
 * 抽象类 Operate
 */
public abstract class Operate {
	public int number1;
	public int number2;
	//获取结果的方法,用于子类重载
	public int getResult(int number1, int number2)
	{
		return 0;
	}

}

2:具体实现类  加法运算  除法运算

/**
 * @author admin
 * Operate实现类  + 法运算
 */
public class OperateAdd extends Operate 
{
	@Override
	public int getResult(int number1, int number2) {
		
		return number1 + number2;
	}
}


/**
 * @author admin
 * Operate实现类  / 法运算
 */
public class OperateDivision extends Operate 
{
	@Override
	public int getResult(int number1, int number2) {
		if (0 == number2) 
		{
			try {
				throw new Exception("除数不能为 0 ");
			} catch (Exception e) {
				e.printStackTrace();
			}
		}
		return number1 / number2;
	}
}


3:工厂类 用于生产具体的运算类

/**
 * @author admin
 * 工厂类 用于生产具体的操作类 + /
 */
public class OperateFactory {
	Operate oper = null;
	
	public Operate createOperate(String operate)
	{
		switch(operate)
		{
		case "+" : oper = new OperateAdd();
		case "/" : oper = new OperateDivision();
		}
		return oper;
	}
}

4 : 计算器显示类 目前其实就是一个main方法
/**
 * @author admin
 * 计算器显示器类
 */
public class OperateView {

	public static void main(String[] args) {
		int number1 = 0;
		int number2 = 0;
		int result = 0;
		Scanner in = new Scanner(System.in);
		try{
			
		System.out.println("请输入第一个数字:");
		number1 = in.nextInt();
		System.out.println("请输入第二个数字:");
		number2 = in.nextInt();
		System.out.println("请输入运算符 :+ 或者 /:");
		String operate = in.next();
		System.out.println(operate);
		//创造工厂,用来生产具体的Operate
		OperateFactory operateFactory = new OperateFactory();
		//生产出具体的Operate子类
		Operate oper = operateFactory.createOperate(operate);
		result = oper.getResult(number1, number2);
		System.out.println("结果为:" + result);
		
		}
		catch(Exception e)
		{
			in.close();
			System.out.println("您的输入有误" + e.getMessage() + e.getStackTrace());
		}
	}

}

5:简单工厂模式总结
就是创造一个工厂来生产你所想要的实现类


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值