gpt4 book ai didi

java - 策略设计模式在大学内联网系统开发中的用例

转载 作者:行者123 更新时间:2023-12-01 09:14:14 25 4
gpt4 key购买 nike

我可以使用策略模式来实现以下逻辑:所以,想象一下学费是根据学生的整体表现来计算的,例如如果学生的整体平均分超过70分,他的学费将减少70%。依此类推..如果平均分数是50比50%折扣,在其他情况下没有折扣。因此,根据平均分数的不同,有不同的计算折扣的策略。我怎样才能在Java代码中实现这个功能呢?我想会有一个 Student 类,它有计算平均分的方法,接口(interface) TuitionFeeCalculator 和三种策略:70persentDiscount、50%discount 和 noDiscount 实现 TuitionFeeCalculator。

最佳答案

假设这只是一个类练习,因为您永远不会为如此简单的事情实现策略模式,但您正在寻找的是这样的:

public interface TuitionFeeCalculator {
double calculateFee(double fee);
}

public class Fee70 implements TuitionFeeCalculator {
@Override
public double calculateFee(double fee) {
return fee * (1-0.7);
}
}

public class Fee50 implements TuitionFeeCalculator {
@Override
public double calculateFee(double fee) {
return fee * (1-0.5);
}
}

public class FeeNoDiscount implements TuitionFeeCalculator {
@Override
public double calculateFee(double fee) {
return fee;
}
}

public class Student {
double tf;

public Student(double tuitionFee) {
this.tf = tuitionFee;
}
}

public static void main(String[] args) {

double averageMark = 90;
double fee = 10000;

TuitionFeeCalculator feeCalculator;
if(averageMark >70) {
feeCalculator = new Fee70();
} else if (averageMark > 50) {
feeCalculator = new Fee50();
} else {
feeCalculator = new FeeNoDiscount();
}

Student s = new Student(feeCalculator.calculateFee(fee));
}

关于java - 策略设计模式在大学内联网系统开发中的用例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40693829/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com