使用工厂方法模式设计能够实现包含加法(+)、减法(-)、乘法(*)、除法(/)四种运算的计算机程序,要求输入两个数和运算符,得到运算结果。要求使用相关的工具绘制UML类图并严格按照类图的设计编写程序实

简介: 该博客文章通过UML类图和Java代码示例,展示了如何使用工厂方法模式设计一个支持加法、减法、乘法和除法运算的计算机程序,并严格按照类图设计实现程序。

2、使用工厂方法模式设计能够实现包含加法(+)、减法(-)、乘法(*)、除法(/)四种运算的计算机程序,要求输入两个数和运算符,得到运算结果。要求使用相关的工具绘制UML类图并严格按照类图的设计编写程序实现。

抽象产品接口:

package gongchang;

public interface type {
    double play(double num1,double num2);

}

具体产品:

package gongchang;

public class Chen implements type {

    @Override
    public double play(double num1, double num2) {
        // TODO 自动生成的方法存根
        System.out.printf("\n%.3fx%.3f=",num1,num2);
        return num1*num2;
    }

}
package gongchang;

public class Chu implements type {

    @Override
    public double play(double num1, double num2) {
        // TODO 自动生成的方法存根
        System.out.printf("\n%.3f/%.3f=",num1,num2);
        if(num2==0) {
            System.out.println("输入的数据分母不能为零");
            return 0;
        }
        return num1/num2;
    }

}
package gongchang;

public class Jia implements type {

    @Override
    public double play(double num1, double num2) {
        // TODO 自动生成的方法存根
        System.out.printf("\n%.3f+%.3f=",num1,num2);
        return num1+num2;
    }

}
package gongchang;

public class Jian implements type {

    @Override
    public double play(double num1, double num2) {
        // TODO 自动生成的方法存根
        System.out.printf("\n%.3f-%.3f=",num1,num2);
        return num1-num2;
    }

}

抽象工厂:

package gongchang;

public interface typefactory {
    public type createfactory();

}

具体工厂:

package gongchang;

public class Chenfactory implements typefactory {

    @Override
    public type createfactory() {        //具体工厂生产乘法对象
        // TODO 自动生成的方法存根
        type ty=new Chen();
        return ty;
    }

}
package gongchang;

public class Chufactory implements typefactory {

    @Override
    public type createfactory() {  //具体工厂生产除法对象
        // TODO 自动生成的方法存根
        type ty=new Chu();
        return ty;
    }

}
package gongchang;

public class Jiafactory implements typefactory {

    @Override
    public type createfactory() {
        // TODO 自动生成的方法存根
        type ty=new Jia();
        return ty;
    }

}
package gongchang;

public class Jianfactory implements typefactory {

    @Override
    public type createfactory() {  //具体工厂生产减法
        // TODO 自动生成的方法存根
        type ty=new Jian();
        return ty;
    }

}

测试

package gongchang;

import java.util.Scanner;

public class Client {

    public static void main(String[] args) {
        // TODO 自动生成的方法存根
  typefactory factory1,factory2,factory3,factory4;//抽象工厂
  type type1,type2,type3,type4;             //抽闲产品
  //创建一个实现加法的运算工厂
  factory1=new Jiafactory();     //具体工厂生产加法
  type1=factory1.createfactory();    //由具体工厂生产加法对象
  System.out.println( type1.play(3, 5));



//  //键盘输入字符串
//  Scanner scanner=new Scanner(System.in);
//  System.out.println("请输入第一个数值:");
//  double num1=scanner.nextInt();
//  System.out.println("请输入第二个数值:");
//  double num2=scanner.nextInt();

//  
//创建一个实现加法的运算工厂
//  factory2=new Jianfactory();   //具体工厂实现减法
//  type2=factory2.createfactory();  //生产具体产品减法
//  System.out.println(type2.play(num1, num2));

//  //创建一个实现乘法的运算工厂
  factory3=new Chenfactory();//具体工厂生产乘
  type3=factory3.createfactory();//乘法产品
  System.out.println(type3.play(2.1,3));

创建一个实现除法的运算工厂
  factory4=new Chufactory();//具体工厂生产除
  type4=factory4.createfactory();//除法产品
  System.out.println(type4.play(1,2));
    }

}

工厂方法模式:符合开闭原则,在简单工厂模式的基础上进行改进。

相关文章
|
7月前
|
uml
UML之类图
UML之类图
102 1
|
7月前
|
数据可视化 Java uml
IDEA中一个被低估的功能,一键把项目代码绘制成UML类图
IDEA中一个被低估的功能,一键把项目代码绘制成UML类图
439 1
|
4月前
|
Java uml
1、使用简单工厂模式设计能够实现包含加法(+)、减法(-)、乘法(*)、除法(/)四种运算的计算机程序,要求输入两个数和运算符,得到运算结果。要求使用相关的工具绘制UML类图并严格按照类图的设计编写程
该博客文章展示了如何使用简单工厂模式设计一个程序,该程序能够根据用户输入的运算符(加、减、乘、除)对两个数进行计算,并提供了相应的UML类图和Java源码实现。
1、使用简单工厂模式设计能够实现包含加法(+)、减法(-)、乘法(*)、除法(/)四种运算的计算机程序,要求输入两个数和运算符,得到运算结果。要求使用相关的工具绘制UML类图并严格按照类图的设计编写程
|
6月前
|
应用服务中间件 uml
【UML】软件工程中常用图:类图、部署图、时序图、状态图
【UML】软件工程中常用图:类图、部署图、时序图、状态图
970 1
|
4月前
|
数据可视化 Java uml
精通UML:从类图到序列图的实战指南
【8月更文第23天】统一建模语言(Unified Modeling Language, UML)是一种用于软件工程的标准图形化语言,它提供了一套工具来帮助开发团队可视化、构造和文档化软件系统。在UML中,类图和序列图是最常用也是最重要的两种图。类图用于描述系统的静态结构,而序列图则用于表示对象之间的交互和系统的动态行为。
237 5
|
4月前
|
设计模式 uml
设计模式常用的UML图------类图
这篇文章介绍了UML中类图的基本概念和用途,详细解释了类与接口、类之间的关系,包括继承、实现、组合、聚合、关联和依赖等六种关系,并展示了它们在类图中的表示方法。
设计模式常用的UML图------类图
|
4月前
|
uml
UML 类图几种关系(依赖、关联、泛化、实现、聚合、组合)及其对应代码
UML 类图几种关系(依赖、关联、泛化、实现、聚合、组合)及其对应代码
637 0
|
7月前
|
数据可视化 Java uml
Java的UML类图
Java的UML类图
130 1
|
6月前
|
测试技术 uml
【UML】详解UML类图
【UML】详解UML类图
123 0
|
uml
IDEA使用插件绘制UML类图+PlantUML语法讲解
IDEA使用插件绘制UML类图+PlantUML语法讲解
896 0