Java 如何聚合抽象类?
所以我试图实现两个类之间的聚合关系。但是,对于如何用抽象类实现它,我有点困惑。 有什么建议吗 饮料.javaJava 如何聚合抽象类?,java,abstract,aggregation,Java,Abstract,Aggregation,所以我试图实现两个类之间的聚合关系。但是,对于如何用抽象类实现它,我有点困惑。 有什么建议吗 饮料.java public class Beverage { private Size size; private SizeFactor sizeCost; private String description; public Beverage(){} public Size getSize(){
public class Beverage {
private Size size;
private SizeFactor sizeCost;
private String description;
public Beverage(){}
public Size getSize(){
return size;
}
public SizeFactor getSizeCost(){
return sizeCost;
}
public String getDescription(){
return description;
}
public void setSize(Size s){
size = s;
}
public void setSizeCost(SizeFactor cost){
sizeCost = cost;
}
public double cost(){
return sizeCost.sizeCost(size);
}
}
BeverAgewithingCredition.java
public abstract class BeverageWithIngredient extends Beverage {
private Beverage drink = new Beverage();
public abstract String getDescription();
public abstract double cost();
}
基本上,这就是我要做的:
您必须将
饮料
注入饮料成分
public abstract class BeverageWithIngredient extends Beverage {
private Beverage drink;
public BeverageWithIngredient(Beverage drink) {
this.drink = drink;
}
public abstract String getDescription();
public abstract double cost();
}
不应使用“扩展”进行聚合。这应该是一种“has-a”关系,而不是“is-a”关系,is“extends”意味着。在这里阅读更多:混合has-a和is-a关系没有什么错。此图符合装饰器模式上面的图遵循k0ner所述的装饰器模式。