您的位置:首页 > 其它

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

2016-07-26 20:41 330 查看
初步接触设计模式,菜鸟一枚,此文章仅作为学习笔记记录,仅作设计模式敲门石。

直接上样例代码:

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:够灵活

这里体现的我理解就是灵活性好,有点像切面编程代码复用。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息