我想检查我的Java代码是否足够OOP,
假设我有一个名为 Shop 的课程,在该课程中,我有一个名为 getAverageEarnings 的方法
我有另一个名为 Simulator 的课程,里面有一个包装函数来包装商店类 getAverageEarnings
我必须向用户隐藏Shop类。
例如:
public class Shop{
public double getAverage(){
return (this.total/5);
}
}
public class Simulator{
Shop shop;
public Simulator(){
shop = new Shop();
}
public double getAverage(){
return shop.getAverage();
}
}
就OOP而言,这是一种好的做法还是一种不好的做法?
答案 0 :(得分:0)
据我所知,你的问题是,你想把Shop类的方法称为模拟器类,但你不希望Shop会涉及外部世界。右。
如果是这种情况,那么我建议按照以下步骤设计您的模块。
i)将Shop声明为Abstract,因为您在其中具有紧密耦合的逻辑并创建受保护的方法getAverage。
ii)在Simulator中扩展Shop或您喜欢的任何片段类,并使用supper方法调用getAverage。
希望这会有所帮助。答案 1 :(得分:0)
据我所知,你想从外面的世界隐藏商店类,你可以试试,
- 将商店类抽象和访问说明符设为私有。 - 在模拟器中扩展购物。 - 通过扩展商店,所有成员都可以在模拟器中使用,因此在模拟器中定义GetAverage()并计算其中的平均值。