package com.Calculation;
public interface Calcu {
/**
* @Author: 廾匸
* @Date: 2020/11/6 19:10
* @Description: 计算方法
* @version: 1.01
*/
public abstract void calculating(double num1,double num2);
}
package com.Calculation;
/**
* @Author: 廾匸
* @Date: 2020/11/6 19:26
* @Description: 加法
* @version: 1.01
*/
public class Addition implements Calcu{
@Override
/**
* @date: 2020/11/6 22:24
* @param num1
* @param num2
* @return: void
* @description: 加法
*/
public void calculating(double num1, double num2) {
System.out.println(num1+"和"+num2+"相加等于"+ (num1 + num2));
}
}
package com.Calculation;
/**
* @Author: 廾匸
* @Date: 2020/11/6 19:26
* @Description: 除法
* @version: 1.01
*/
public class Division implements Calcu{
@Override
/**
* @date: 2020/11/6 22:25
* @param num1
* @param num2
* @return: void
* @description: 除法
*/
public void calculating(double num1, double num2) {
if(num2 !=0){
System.out.println(num1+"和"+num2+"相除等于"+ (num1 / num2));
}else{
System.out.println("你输入的除数不合理");
}
}
}
package com.Calculation;
/**
* @Author: 廾匸
* @Date: 2020/11/6 19:26
* @Description: 乘法
* @version: 1.01
*/
public class Multiplication implements Calcu{
@Override
/**
* @date: 2020/11/6 22:25
* @param num1 传入数字1
* @param num2 传入数字2
* @return: void
* @description: 乘法
*/
public void calculating(double num1, double num2) {
System.out.println(num1+"和"+num2+"相乘等于"+ (num1 * num2));
}
}
package com.Calculation;
/**
* @Author: 廾匸
* @Date: 2020/11/6 19:26
* @Description: 减法
* @version: 1.01
*/
public class Subtraction implements Calcu{
@Override
/**
* @date: 2020/11/6 22:26
* @param num1
* @param num2
* @return: void
* @description: 减法
*/
public void calculating(double num1, double num2) {
System.out.println(num1+"和"+num2+"相减等于"+ (num1 - num2));
}
}
package com.Calculation;
/**
* @Author: 廾匸
* @Date: 2020/11/6 19:34
* @Description: 电脑类,执行类 每个策略模式都有一个执行类
* @version: 1.01
*/
public class Comptear {
private double num;
private double nums;
private Calcu calcu;
public Comptear(Calcu calcu) {
this.calcu = calcu;
}
public Calcu getCalcu() {
return calcu;
}
public void setCalcu(Calcu calcu) {
this.calcu = calcu;
}
public Comptear() {
}
public Comptear(double num, double nums) {
this.num = num;
this.nums = nums;
}
/**
* @date: 2020/11/6 19:52
* @param
* @return: void
* @description: 电脑进行运算
*/
public void calculat(){
calcu.calculating(num,nums);
}
}
package com.Calculation;
/**
* @Author: 廾匸
* @Date: 2020/11/6 19:41
* @Description:
* @version: 1.01
*/
public class Test {
public static void main (String[] args){
Comptear comptear =new Comptear(3,9);
Calcu add = new Addition();
Calcu mult = new Multiplication();
Calcu sub = new Subtraction();
Calcu division = new Division();
comptear.setCalcu(add);
System.out.println("加法");
comptear.calculat();
comptear.setCalcu(mult);
System.out.println("乘法");
comptear.calculat();
comptear.setCalcu(sub);
System.out.println("减法");
comptear.calculat();
comptear.setCalcu(division);
System.out.println("除法");
comptear.calculat();
}
}
使用策略模式的设计方式来实现两个数的操作获得相应的结果。提供四种具体的实施策略,加、减、乘、除操作
最新推荐文章于 2021-05-18 19:08:49 发布