关于开闭原则 JavaDiscountCourse 类的设计
来源:3-3 开闭原则coding
Schwarzeni
2019-01-25
我一开始的想法是把原 JavaCourse
类 作为 JavaDiscountCourse
的一个成员变量,请问这样子的设计会有什么问题
public class JavaDiscountCourse implements ICourse{
private JavaCourse javaCourse;
public JavaDiscountCourse(String name, double price) {
this.javaCourse = new JavaCourse(name, price);
}
@Override
public String getName() {
return this.javaCourse.getName();
}
@Override
public double getPrice() {
return this.javaCourse.getPrice() * 0.8;
}
public double getOriginPrice() {
return this.javaCourse.getPrice();
}
}
写回答
2回答
-
亲爱的同学,你好,我是geely老师的助教。
你这样挺不错的。和老师的设计有不同的思路,赞。我再修改一下,看看能不能还有不一样的想法。
public class DiscountCourse implements ICourse{ private ICourse course; //折扣 private double discount; public JavaDiscountCourse(ICourse course, double discount) { this.course = course; this.discount = discount; } @Override public String getName() { return this.course.getName(); } @Override public double getPrice() { return this.course.getPrice() * this.discount; } public double getOriginPrice() { return this.course.getPrice(); } }
112019-01-25 -
Schwarzeni
提问者
2019-01-25
自己解决啦,原来后面课程组合复用那里涉及到了这个问题了
112019-01-25
相似问题