美文网首页
Java 设计模式 简单工厂模式

Java 设计模式 简单工厂模式

作者: 南土酱 | 来源:发表于2021-05-18 10:01 被阅读0次

一开始的初学者写Java。例如举一个计算器的小程序。

伪代码:

A = read()
B = read()
#输入运算符
C = read()
if(C == +) do something
if(C == -) do something
if(C == *) do something 
if(C == /) do something
or
switch (C)
case "+" do something
case "-" do something
case "*" do something
case "/" do something

这样的代码扩展性和 标准都不达标。
像if 这样的还有判断四次,就很拉。做了几次无用功

好在有 面向对象编程

class opertaion{
  getResult(A,B,C){
    switch C:
     case + :
     case - :
     case * :
  }
}
void main(){
  A = read()
  B = read()
  C = read()
  result = new opertaion().getResult(A,B,C)
}

这样子 有了封装特性 并且,逻辑算数模块与 客户端输入数字模块 分离。总算是稍微好看点了。
但是问题又来了,要是某公司的业务逻辑不只是 加减乘除,可能还有矩阵运算,平方差,开平方,幂运算,对数运算等等,
要在 case 里边加上运算逻辑的代码,而且代码都挤在一起,忘记不小心改错其他代码,那分分钟是炒鱿鱼呀
例如:
switch C:{
     case + :  return result = A+B
     case - : return result = A-B
     case * :return result = A*B
     case 对数 : do something
     case 幂:do something
     case 平方差 :do something
     case  矩阵 :do something
  }
太紧凑了。所以得 松耦合  一下!

松耦合

利用继承和多态: 
class operation
  private A=0
  private B=0
  public getA()
  public getB()
  public SetA(A)
  public SetB(B)
  public getResult()
class operationAdd extend operation //加法
  @override
   public getResult(){
  return getA()+getB()
}
class operationSub extend operation //减法
  @override
   public getResult(){
  return getA()-getB()
}
...................其他类似
这样子既 分开了运算逻辑,达到松耦合。
再增加其他运算逻辑的时候,只需 而外添加一个类继承 operation 实现 方法即可。
而且还符合 工厂模式! 也就是我需要哪个运算功能,就给我哪个功能即可,不用像前边一样一股脑的都给我了

工厂模式:(顾名思义就是 生产某个东西即可)

class operationFactory{
  public Operation createOperation(String C){
    Operation oper = null
    switch C:
     case + :  oper = new operationAdd (); 
     case - : oper = new operationSub(); 
     case * : oper = new operationXX (); 
     case 对数 : oper = new operationXX (); 
     case 幂: oper = new operationXX (); 
     case 平方差 : oper = new operationXX (); 
     case  矩阵 : oper = new operationXX (); 
  }
return oper;
}
这样子当我需要加法的时候,
main(){
  //先生产一个加法功能
  Operation oper = OperationFactory.createOperate(C);
  //再添加我要运算的值
  oper .setA(A)
  oper .setB(B) 
  //返回结果
  result = oper.getResult()
}

\color{#228B22}{java 学习小总结,不对之处,欢迎大神们喷我。可以的话顺手点个赞吧~~!}
\color{red}{警: 禁止抄袭,转载说明出处 🤨}

相关文章

  • 设计模式系列-简单工厂模式

    JAVA设计模式系列: 单例模式 观察者模式 模板方法模式 简单工厂模式 定义 简单工厂模式又叫做静态工厂方法模式...

  • 工厂模式

    java设计模式-工厂模式 工厂模式: 工厂模式是java设计模式里最常用的设计模式之一。 工厂模式属于创建型模式...

  • 简单工厂模式

    Java23种设计模式--简单工厂模式 一、什么是简单工厂模式 简单工厂模式属于类的创建型模式,又叫做静态工厂方法...

  • 设计模式系列-抽象工厂模式

    JAVA设计模式系列: 单例模式 观察者模式 模板方法模式 简单工厂模式 抽象工厂模式 抽象工厂模式 定义 抽象工...

  • JAVA基础23种设计模式----简单工厂模式--MonkeyK

    JAVA基础23种设计模式----简单工厂模式--MonkeyKing 简单工厂模式属于类的创建模型模式,又叫静态...

  • Java设计模式教程

    Java设计模式教程 Java工厂设计模式 Java抽象工厂模式 Java单例模式 Java建造者(Builder...

  • Java 设计模式1-简单工厂模式

    简单工厂模式不属于标准的Java 23设计模式之内。根据分类,简单工厂模式又分类为:1.普通简单工厂模式。2.多方...

  • Java设计模式-工厂方法模式

    上一篇:Java设计模式-简单工厂模式 与简单工厂模式的对比 在简单工厂模式中,每当我们添加了新的功能(例如例子中...

  • 设计模式-工厂模式

    设计模式1 设计模式2 工厂模式 工厂模式可简单的分为三类:简单工厂,工厂方法,抽象工厂 简单工厂模式 定义 简单...

  • Java与模式

    《JAVA与模式》之简单工厂模式《JAVA与模式》之工厂方法模式《JAVA与模式》之抽象工厂模式

网友评论

      本文标题:Java 设计模式 简单工厂模式

      本文链接:https://www.haomeiwen.com/subject/afdejltx.html