1業(yè)務(wù)和邏輯寫在一起
import java.util.*;
import java.io.Console;
class Factory
{
public static void main(String[] args)
{
try
{
System.out.println("工廠模式");
Console console = System.console();
String strNumberA = console.readLine("請(qǐng)輸入數(shù)字A:");
String strOperate = console.readLine("請(qǐng)輸入運(yùn)算符號(hào)(+-*/):");
String strNumberB = console.readLine("請(qǐng)輸入數(shù)字B:");
String strResult = "";
switch (strOperate)
{
case "+":
strResult = String.valueOf(Double.valueOf(strNumberA) + Double.valueOf(strNumberB));
break;
case "-":
strResult = String.valueOf(Double.valueOf(strNumberA) - Double.valueOf(strNumberB));
break;
case "*":
strResult = String.valueOf(Double.valueOf(strNumberA) * Double.valueOf(strNumberB));
break;
case "/":
if (strNumberB != "0")
strResult = strResult = String.valueOf(Double.valueOf(strNumberA) / Double.valueOf(strNumberB));
else
strResult = "除數(shù)不能為0";
break;
}
System.out.println("結(jié)果是: " + strResult);
}
catch (Exception ex)
{
System.out.println("錯(cuò)了");
}
}
}
2運(yùn)算和顯示分開
import java.util.*;
import java.io.Console;
class Decouping {
public static class Operation {
public static double GetResult(double numberA, double numberB, String operate) {
double result = 0d;
switch (operate) {
case "+":
result = numberA + numberB;
break;
case "-":
result = numberA - numberB;
break;
case "*":
result = numberA * numberB;
break;
case "/":
if (numberB != 0)
result = numberA / numberB;
else
result = 0;
break;
}
return result;
}
}
public static void main(String[] args) {
try {
System.out.println("工廠模式");
Console console = System.console();
String strNumberA = console.readLine("請(qǐng)輸入數(shù)字A:");
String strOperate = console.readLine("請(qǐng)輸入運(yùn)算符號(hào)(+-*/):");
String strNumberB = console.readLine("請(qǐng)輸入數(shù)字B:");
String strResult = "";
strResult = String.valueOf(Operation.GetResult(Double.valueOf(strNumberA), Double.valueOf(strNumberB), strOperate));
System.out.println("結(jié)果是: " + strResult);
}
catch (Exception ex) {
System.out.println("您的輸入有錯(cuò)");
}
}
}
3簡單工廠
import java.util.*;
class Operation {
double numberA = 0;
double numberB = 0;
private double result = 0;
public void setNumberA(double numberA){
this.numberA = numberA;
}
public double getNumberA(double numberA){
return numberA;
}
public void setNumberB(double numberB){
this.numberB = numberB;
}
public double getNumberB(double numberB){
return numberB;
}
public double GetResult() {
double result = 0;
return result;
}
}
class OperationAdd extends Operation {
public double GetResult() {
double result = 0;
result = numberA + numberB;
return result;
}
}
class OperationSub extends Operation {
public double GetResult() {
double result = 0;
result = numberA - numberB;
return result;
}
}
class OperationMul extends Operation {
public double GetResult() {
double result = 0;
result = numberA * numberB;
return result;
}
}
class OperationDiv extends Operation {
public double GetResult() {
double result = 0;
// if ( numberB == 0 )
// throw new Exception("除數(shù)不能為0");
result = numberA / numberB;
return result;
}
}
class LXJSimpleFactory {
public static Operation createOperate(String operate) {
Operation oper = null;
switch (operate) {
case "+":
oper = new OperationAdd();
break;
case "-":
oper = new OperationAdd();
break;
case "*":
oper = new OperationAdd();
break;
case "/":
oper = new OperationAdd();
break;
}
return oper;
}
}
public class SimpleFactory {
public static void main(String[] args) {
System.out.println("簡單工廠");
Operation oper;
oper = LXJSimpleFactory.createOperate("+");
oper.numberA = 1;
oper.numberB = 29;
double result = oper.GetResult();
System.out.println("1+29 is:" + result);
}
}

簡單工廠.png