Java简单工厂模式实现计算器功能及C++代码示例
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
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++代码示例。简单工厂模式提供了一种方便的对象创建方式,可以根据需要扩展功能。
原文地址: http://www.cveoy.top/t/topic/bxnp 著作权归作者所有。请勿转载和采集!