设计模式学习003——工厂模式(工厂方法、抽象工厂),简单工厂【也叫静态工厂】

本文讲解三个主要概念,简单工厂、工厂方法模式、抽象工厂模式。

首先,简单工厂也即静态工厂,当然也可以不是,但是因为我们常常把简单工厂中产生对象的方法声明为static的,所以就有了静态的由来。简单工厂的实质就是一个工厂类根据传入的参数来决定到底该创建那个产品类的实例。简单工厂的有助于实现软件的一个结构化,但是,我们也将看到,工厂类来全权决定到底创建那个类的实例这种方式会让工厂类违反“高内聚”的原则,而且一旦要加入新的产品类进来,这个时候就不得不改变工厂类的实现。

例子如下:假设我们要做一个运算器:如下几步即可完成:

第一步:实现一个产品接口:

public interface Operation {
	public double compute(double args0,double args1);
}
第二部:做出几个接口的实现:这里只写一个:

public class AddOperation implements Operation {
	@Override
	public double compute(double args0,double args1) {
		return args0+args1;
	}
}
第三步:传建一个工厂:根据传入的参数决定实例化那个产品对象。

public class OperationFactory {
	public static Operation  getOpe(String ope){
		if("+".equals(ope)){
			return new AddOperation();
		}
		if("-".equals(ope)){
			return new MinusOperation();
		}
		if("*".equals(ope)){
			return new MutilOperation();
		}
		if("/".equals(ope)){
			return new DivOperation();
		}
		else return null;
	}
}

第四步:最后就是如何使用工厂类了:

public class TestOpe {
	private static Scanner scan = new Scanner(System.in); 
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		System.out.println("input args0");
		double a = scan.nextDouble();
		System.out.println("input arg
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值