TreeviewCopyright © qgao 2021-* all right reserved, powered by aleen42

策略模式

Client

package com.bermuda.surface;

import com.bermuda.context.OperationContext;

public class Client {
    public static void main(String[] args) {
        OperationContext operationContext = new OperationContext('+');
        operationContext.getResult(2,2);
    }
}

OperationContext

package com.bermuda.context;

import com.bermuda.helper.*;

public class OperationContext {

    private OperationHelper operationHelper = null;

    /*
    消除switch看抽象工厂模式
     */
    public OperationContext(char operation) {
        switch (operation){
            case '+':
                operationHelper = new OperationAdd();
                break;
            case '-':
                operationHelper = new OperationSub();
                break;
            case '*':
                operationHelper = new OperationMul();
                break;
            case '/':
                operationHelper = new OperationDiv();
                break;
            default:
                operationHelper = null;
        }
    }

    public void getResult(int operationA,int operationB){
        operationHelper.getResult(operationA,operationB);
    }
}

OperationHelper

package com.bermuda.helper;

public abstract class OperationHelper {
    public abstract void getResult(int operationA,int operationB);
}

OperationAdd

package com.bermuda.helper;

public class OperationAdd extends OperationHelper {
    @Override
    public void getResult(int operationA,int operationB) {
        System.out.println(operationA+operationB);
    }
}

OperationSub

package com.bermuda.helper;

public class OperationSub extends OperationHelper {
    @Override
    public void getResult(int operationA, int operationB) {
        System.out.println(operationA-operationB);
    }
}

OperationMul

package com.bermuda.helper;

public class OperationMul extends OperationHelper {
    @Override
    public void getResult(int operationA, int operationB) {
        System.out.println(operationA*operationB);
    }
}

OperationDiv

package com.bermuda.helper;

public class OperationDiv extends OperationHelper {
    @Override
    public void getResult(int operationA, int operationB) {
        if(operationB != 0){
            System.out.println(operationA/operationB);
        }else {
            System.out.println("除数不能为0");
        }
    }
}
Copyright © qgao 2021-* all right reserved,powered by Gitbook该文件修订时间: 2022-07-08 21:13:28

results matching ""

    No results matching ""