HeadFirst设计模式读书笔记——简单工厂模式

初步接触设计模式,菜鸟一枚,此文章仅作为学习笔记记录,仅作设计模式敲门石。


直接上样例代码:

Operation.java

package com.ai.data.config.smo;

public class Operation {
	public int getResult(int firstNum,int secondNum) {
		return 0;
	}
}


OperationAdd

package com.ai.data.config.smo;

public class OperationAdd extends Operation{
	public int getResult(int firstNum,int secondNum) {
		return firstNum + secondNum;
	}
}

OperationSub.java

package com.ai.data.config.smo;

public class OperationSub extends Operation{
	public int getResult(int firstNum,int secondNum) {
		return firstNum - secondNum;
	}

}

SimpleOperationFactoryBean

package com.ai.data.config.smo;

/**
 * 第一个设计模式例子,入门工厂模式
 * 总结:工厂模式,即从业务实现类中抽离出实例对象创建,交由
 * 		专门的FactoryBean负责创建实例对象
 * @author sww
 *
 */
public class SimpleOperationFactoryBean  {
	
	public static Operation createOperation(String type){
		Operation operation = null;
		if("+".equals(type)){
			operation = new OperationAdd(); 
		}else if("-".equals(type)){
			operation = new OperationSub(); 
		}
		return operation;
	}
}






Test:

package com.ai.data.config.smo;

public class Test {

	/**工厂模式测试
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		SimpleOperationFactoryBean SimpleOperationFactoryBean = new SimpleOperationFactoryBean();
		Operation operationAdd = SimpleOperationFactoryBean.createOperation("+");
		System.out.println("###2+1=" + operationAdd.getResult(1,2));
		
		Operation operationSub = SimpleOperationFactoryBean.createOperation("-");
		System.out.println("###2-1=" + operationSub.getResult(2,1));
	}
}


测试结果




总结:例子很简单,工厂模式就是把实例对象创建从代码中移出来给一个专门的工厂类来创造,不在类里面自己new。

设计模式四点核心思想。

1:可维护

2:可复用

3:可拓展

4:够灵活

这里体现的我理解就是灵活性好,有点像切面编程代码复用。










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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值