大话设计模式之简单工厂模式(代码片段)

浅夏丶未央 浅夏丶未央     2022-11-10     436

关键词:

背景需求:

模拟一个简单计算器。

UML类图:

说明:

抽象类AbstractOperation有一个抽象方法getResult和两个成员变量,加减乘除分别继承AbstractOperation并实现getResult方法即可。OperationFactory是一个简单工厂方法,可根据入参实例化不同的子类。

demo:

AbstractOperation类:

 1 public abstract class AbstractOperation 
 2 
 3     private Double firstNumber;
 4     private Double secondNumber;
 5 
 6     public abstract Double getResult() throws Exception;
 7 
 8     public Double getFirstNumber() 
 9         return firstNumber;
10     
11 
12     public void setFirstNumber(Double firstNumber) 
13         this.firstNumber = firstNumber;
14     
15 
16     public Double getSecondNumber() 
17         return secondNumber;
18     
19 
20     public void setSecondNumber(Double secondNumber) 
21         this.secondNumber = secondNumber;
22     
23 

加法类OperationAdd:

1 public class OperationAdd extends AbstractOperation 
2     @Override
3     public Double getResult() 
4         return getFirstNumber() + getSecondNumber();
5     
6 

减法类OperationSub:

1 public class OperationSub extends AbstractOperation 
2     @Override
3     public Double getResult() 
4         return getFirstNumber() - getSecondNumber();
5     
6 

简单工厂类OperationFactory:

 1 public class OperationFactory 
 2 
 3     public static AbstractOperation createOperation(String operate)
 4         AbstractOperation operation = null;
 5 
 6         switch (operate)
 7             case "+":operation = new OperationAdd();break;
 8             case "-":operation = new OperationSub();break;
 9             default:break;
10         
11         return operation;
12     
13 

客户端测试类:

 1 public class Main 
 2 
 3     public static void main(String[] args) throws Exception 
 4 
 5         AbstractOperation operation = 
 6    OperationFactory.createOperation("+");
 7         operation.setFirstNumber(10d);
 8         operation.setSecondNumber(20d);
 9         System.out.println(operation.getResult());
10 
11     
12 

总结:

简单工厂模式适用于需要创建大量相同类型(父类相同或实现相同接口)实例的情景

大话设计模式之简单工厂读后感(代码片段)

引言:让我们重温经典,致敬经典简单工厂模式:根据调用端传参来有选择的实例化目标对象。UML类图:我们知道简单工厂就是为我们生成我们需要的对象。举个栗子:我们在舞台看表演的时候,一场场表演下来,我们可以总结... 查看详情

python大话设计模式:简单工厂模式(蟒版)(代码片段)

查看详情

csharp大话设计模式:简单工厂模式(c#版)(代码片段)

查看详情

大话设计模式之简单工厂模式

简单工厂模式  最近朋友推荐了一本书《大话设计模式》,此书刚刚到,博主也还没开始看,希望以博文的方式与大家一起分享,一起学习.简单工厂模式,也就是说,到底要实列化谁,将来会不会增加实列化的对象,比如增加开根运算,... 查看详情

大话设计模式第八章之简单工厂模式

   简单工厂模式 工厂方法模式     packagecom.dp.factory;interfaceIFactory{CalculatorCreateCalculator();}classAddFactoryimplementsIFactory{@OverridepublicCalculatorCreat 查看详情

大话设计模式之工厂方法模式读后感(代码片段)

引言:让我们重温经典,致敬经典工厂方法模式:定义一个用于创建对象的接口,让子类来决定实例化哪一个类,工厂方法使一个类的实例化延迟到了子类。UML图:1packagecom.dzf.designtest;23/**4*<desc>5*工厂方法:定义一个创建对... 查看详情

大话设计模式--第一章简单工厂设计模式(代码片段)

简单工厂设计模式案例:写一个计算器,实现加减乘除.第一步:写一份简单的代码packagecom.chapter1;publicclassCaculator1publicstaticvoidmain(String[]args)if(args.length<3)System.out.println("参数个数异常");return;Doublenum1=Double.parseDoubl 查看详情

大话设计模式--简单工厂模式(代码片段)

问题:请用C++,JAVA,C#任意一种以面向对象语言实现一个计算器控制台程序:要求输入2个数和运算符号,得到结果第一次编码:publicclassProgrampublicstaticvoidmain(String[]args)throwsIOExceptionSystem.out.println("请 查看详情

大话设计模式第一章之简单工厂模式

packagecom.dp.simpleFactory;//计算器作为抽象类定义一个计算需要什么子类继承了两个数字并且要有自己的计算实现方法publicabstractclassCalculator{protecteddoublenumberA=0;protecteddoublenumberB=0;publicdoublegetNumberA(){returnnumberA;}publicvoid 查看详情

java之抽象工厂模式(大话设计模式)

...们还是要吸取其思想而不是生搬硬套。来看下类图:大话设计模式-类图看类图已经很乱了,来简单的梳理下。我们只看接口,这样就不难看出实际上是抽象工厂生产抽象产品的过程,而具体实现都是各自的实现类来做。看下具... 查看详情

设计模式之简单工厂模式(代码片段)

简单来说,工厂模式就是按照需求来返回一个类型的对象,使用工厂模式的意义就是,如果对象的实例化与代码依赖太大的话,不方便进行扩展和维护,使用工厂的目的就是使对象的实例化与主程序代码就行解耦.1.简单工厂模式简介简... 查看详情

设计模式之简单工厂模式(代码片段)

引言   所属:创建型模式,常用设计模式之一  工厂模式分为:简单工厂模式、工厂方法模式、静态工厂模式、抽象工厂模式。  下面为简单工厂模式。 工厂模式概述   通过使用一个公共接口来指向不同方... 查看详情

设计模式之简单工厂模式(代码片段)

简单画图理解//设计模式之简单工厂模式//创建一个食物类interfaceFoodvoideat();//我今天想吃薯条或汉堡classHamburgerimplementsFood@Overridepublicvoideat()System.out.println("我吃汉堡");classFrenchFriesimplementsFood@Overridepublicvoidea 查看详情

设计模式之简单工厂模式(代码片段)

    今天学习了简单工厂模式,总结一下。    简单工厂模式的核心思想是:由一个工厂实体决定创建出哪一种产品的实例。    比较简单,因此直接上代码:  这个例子我们实现一个简单的计算器。我们先... 查看详情

设计模式之简单工厂模式(代码片段)

2018-09-16 23:50:57简单工厂模式概述  简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例。    UML类图如下:     该模式中包含的角色及其职责(摘自:百度百科)   工厂(Creator)角色 ... 查看详情

设计模式之简单工厂模式(创建型)(代码片段)

定义简单工厂模式又称静态工厂模式。可以根据参数的不同返回不同类的实例。定义一个类来创建其它类的实例。角色简单工厂模式包含如下角色Factory:工厂角色Product:抽象产品角色ConcreteProduct:具体产品角色简单实例publicabst... 查看详情

设计模式从青铜到王者第五篇:创建型模式之简单工厂模式(simplefactorypattern)(代码片段)

系列文章目录文章目录系列文章目录前言一、简单工厂模式模式动机二、简单工厂模式模式定义三、简单工厂模式模式结构四、简单工厂模式时序图五、简单工厂模式代码分析六、简单工厂模式模式分析七、简单工厂模式优点八... 查看详情

设计模式之工厂模式(代码片段)

工厂模式:定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到其子类。简单工厂模式与工厂模式区别:  (1)简单工厂模式的优点在于工厂类中包含了必要的逻辑判断,根据客户... 查看详情