Java简单工厂模式实现计算器功能及C++代码示例

简介

本文将介绍如何使用Java的简单工厂模式实现一个简单的计算器,并提供相应的C++代码示例。

简单工厂模式

简单工厂模式是一种创建型设计模式,它提供了一个创建对象的最佳方式。在简单工厂模式中,我们定义一个工厂类,该类负责根据传入的参数创建不同类型的对象。

Java代码实现

以下是使用Java实现简单计算器的代码:

Operator.javajavapackage util2;

public abstract class Operator { private int firstP; private int secondP;

public abstract int getResult();

public int getFirstP() {        return this.firstP;    }

public int getSecondP() {        return this.secondP;    }

public void setFirstP(int k) {        this.firstP = k;    }

public void setSecondP(int k) {        this.secondP = k;    }}

Add.javajavapackage util2;

public class Add extends Operator { public int getResult() { return this.getFirstP() + this.getSecondP(); }}

Sub.javajavapackage util2;

public class Sub extends Operator { public int getResult() { return this.getFirstP() - this.getSecondP(); }}

OperatorSimpleFactory.javajavapackage util2;

public class OperatorSimpleFactory { public static Operator createrOperator(String oper) { Operator v = null; if ('+'.equals(oper)) { v = new Add(); } else if ('-'.equals(oper)) { v = new Sub(); } return v; }}

Client.javajavapackage util2;

import java.util.Scanner;

public class Client { public static void main(String[] args) { int firstP = 1; int secondP = 2; String oper = '';

    Scanner sc = new Scanner(System.in);        System.out.println('请输入操作数1:');        firstP = sc.nextInt();        System.out.println('请输入操作数2:');        secondP = sc.nextInt();        System.out.println('请输入操作:');        oper = sc.next();        sc.close();

    Operator operator = OperatorSimpleFactory.createrOperator(oper);        operator.setFirstP(firstP);        operator.setSecondP(secondP);        System.out.println(firstP + ' ' + oper + ' ' + secondP + ' ' + '=' + operator.getResult());    }}

C++代码转换

以下是将上述Java代码转换为C++代码的示例:cpp#include #include

using namespace std;

class Operator {private: int firstP; int secondP;public: virtual int getResult() = 0; int getFirstP() { return firstP; } int getSecondP() { return secondP; } void setFirstP(int k) { firstP = k; } void setSecondP(int k) { secondP = k; }};

class Add : public Operator {public: int getResult() { return getFirstP() + getSecondP(); }};

class Sub : public Operator {public: int getResult() { return getFirstP() - getSecondP(); }};

class OperatorSimpleFactory {public: static Operator* createOperator(string oper) { Operator* v = nullptr; if (oper == '+') { v = new Add(); } else if (oper == '-') { v = new Sub(); } return v; }};

int main() { int firstP = 1; int secondP = 2; string oper = '';

cout << '请输入操作数1:' << endl;    cin >> firstP;    cout << '请输入操作数2:' << endl;    cin >> secondP;    cout << '请输入操作:' << endl;    cin >> oper;

Operator* operatorObj = OperatorSimpleFactory::createOperator(oper);    operatorObj->setFirstP(firstP);    operatorObj->setSecondP(secondP);    cout << firstP << ' ' << oper << ' ' << secondP << ' ' << '=' << operatorObj->getResult() << endl;

delete operatorObj;

return 0;}

总结

本文介绍了如何使用Java的简单工厂模式实现一个简单的计算器,并提供了相应的C++代码示例。简单工厂模式提供了一种方便的对象创建方式,可以根据需要扩展功能。

Java简单工厂模式实现计算器功能及C++代码示例

原文地址: http://www.cveoy.top/t/topic/bxnp 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录