作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我可以使用策略模式来实现以下逻辑:所以,想象一下学费是根据学生的整体表现来计算的,例如如果学生的整体平均分超过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/
我最近购买了《C 编程语言》并尝试了 Ex 1-8这是代码 #include #include #include /* * */ int main() { int nl,nt,nb;
早上好!我有一个变量“var”,可能为 0。我检查该变量是否为空,如果不是,我将该变量保存在 php session 中,然后调用另一个页面。在这个新页面中,我检查我创建的 session 是否为空,
我正在努力完成 Learn Python the Hard Way ex.25,但我无法理解某些事情。这是脚本: def break_words(stuff): """this functio
我是一名优秀的程序员,十分优秀!