黑马程序员浅谈设计模式-工厂设计模式

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

【黑马程序员济南】简单工厂设计模式

我们都知道面向对象编程有三大特征:封装,集成和多态,那我们如何在实际开发中去灵活运用它呢,今天我给大家聊一聊简单工厂设计模式。简单工厂设计模式的一个核心思想就是高内聚,低耦合,使具体的业务逻辑实现功能和效果展示分离开来。

先给大家举一个没有应用到工厂设计模式的例子:

题目:要求设计一个计算器程序,输入两个数和一个运算符号,计算出结果。

我们先写一个没有用到简单工厂设计模式的代码:

publicclass Progrtam {

publicstaticvoid main(String[] args){

Console console = System.console();

try{

console.printf("输入数字A");

String strNumberA = console.readLine();

console.printf("请选择运算符号(+,-,*,/)");

String strOperate = console.readLine();

String strNumberB = console.readLine();

String strResult = "";

switch(strOperate)

{

case"+":

strResult = String.valueOf(strNumberA+strNumberB);

break;

case"-":

strResult =

String.valueOf(Double.valueOf(strNumberA)-Double.valueOf(strNumberB));

case"*":

strResult =

String.valueOf(Double.valueOf(strNumberA)*Double.valueOf(strNumberB));

break;

case"/":

strResult =

String.valueOf(Double.valueOf(strNumberA)/Double.valueOf(strNumberB));

break;

}

console.printf("结果是:"+strResult);

console.readLine();

}catch(Exception ex){

console.printf("您输入有误:"+ex.getMessage());

}

}

}

大家可以看到,业务逻辑和效果展示都在一个类里边,这样就是高耦合的体现,如果我们创

建一个其他的预算符号是,就需要在写一个类,或者在这个类里直接修改,这在我们的编程思想中使非常不合理的,需要浪费大量的时间去做重复的代码工作,影响我们的效率。如果我们使用简单工厂模式,我们就会非常简单的去增加我们的业务需求。

简单的工厂模式代码如下:

//运算工厂类

publicclass OperationFactory {

//创建Operation的工厂方法

publicstatic OperationcreateOperate(String operate){

Operation oper = null;

//针对每一种运算方法,单独创建业务类,根据不同的运算符号,创建对应的运算效果类

switch(operate){

case"+":

oper = new OperationAdd();

break;

case"-":

oper = new OperationSub();

break;

case"*":

oper = new OperationMul();

break;

case"/":

oper = new OperationDiv();

break;

}

return oper;

}

}

如上我们如果想要添加一种额外的运算方法时,只是需要创建一个单独的运算类,在工厂类里添加对应的方法即可,没有去更改其他运算类的业务逻辑,做到了低耦合的设计思想。

相关文档
最新文档