2021-01-29 1簡單工廠模式

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
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容