设计模式之简单工厂模式

自己写的。可能有不对的地方,请指正,勿喷!!!

 

简单工厂模式,用的比较普遍,用一个类做工厂,实现一个方法。调用时通过参数判断实例化哪个类,当然返回的类是继承了一个类的子类

看例子吧

运算方法超类

package com.mode;

/**
 * 计算器运算超类
 * @author hao
 *
 */
public class Caculator {
	/** 参数1 */
	public double numA;
	
	/** 参数2 */
	public double numB;
	
	/**
	 * 获得结果
	 * @return 运算之后的结果
	 */
	public double getResult() {
		double result = 0;
		return result;
	}
}


然后,加法类,乘法类,除法类继承之,实现getResult()方法

加法类:

package com.mode;

/**
 * 加法
 * 
 * @author hao
 * 
 */
public class Addition extends Caculator {

	@Override
	public double getResult() {
		return numA + numB;
	}

}


乘法类:

package com.mode;

/**
 * 乘法
 * 
 * @author hao
 * 
 */
public class Multiplication extends Caculator {

	@Override
	public double getResult() {
		return numA * numB;
	}

}


工厂类:生成我们所需要的运算对象

package com.mode;

/**
 * 工厂类,生成运算方法
 * @author hao
 *
 */
public class Factory {
	/**
	 * 获取运算方式
	 * @param 所需要的模式类型
	 * @return 返回运算对象
	 */
	public static Caculator getOperation(int mode) {
		switch (mode) {
		case Contants.Operation.ADDITION:
			return new Addition();
		case Contants.Operation.SUBTRACTION:
			
		case Contants.Operation.MULTIPLICATION:
			return new Multiplication();
		case Contants.Operation.DIVISION:

		default:
			break;
		}
		return null;
	}
}

Main类,看效果

package com.mode;

public class Main {
	public static void main(String[] args) {
		Caculator caculator = Factory.getOperation(Contants.Operation.ADDITION);
		caculator.numA = 1.2;
		caculator.numB = 2.5;
		System.out.println(caculator.getResult());
	}
}


我们需要加法,直接在 getOperation传入加法的参数我们即可返回所需要的对象,如果需要增加运算方式,我们直接继承Caculator即可,然后在Factory中的switch中增加一个case段。。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值